feat: alias map string interface
This commit is contained in:
		
							parent
							
								
									3d7019a7c2
								
							
						
					
					
						commit
						22cee85879
					
				
							
								
								
									
										9
									
								
								gorm.go
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								gorm.go
									
									
									
									
									
								
							@ -16,6 +16,15 @@ import (
 | 
				
			|||||||
// for Config.cacheStore store PreparedStmtDB key
 | 
					// for Config.cacheStore store PreparedStmtDB key
 | 
				
			||||||
const preparedStmtDBKey = "preparedStmt"
 | 
					const preparedStmtDBKey = "preparedStmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// M is a convenient alias for a map[string]interface{} map, useful for
 | 
				
			||||||
 | 
					// dealing with GORM in a native way.  For instance:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//     gorm.M{"a": 1, "b": true}
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// There's no special handling for this type in addition to what's done anyway
 | 
				
			||||||
 | 
					// for an equivalent map type.
 | 
				
			||||||
 | 
					type M = map[string]interface{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Config GORM config
 | 
					// Config GORM config
 | 
				
			||||||
type Config struct {
 | 
					type Config struct {
 | 
				
			||||||
	// GORM perform single create, update, delete operations in transactions by default to ensure database data integrity
 | 
						// GORM perform single create, update, delete operations in transactions by default to ensure database data integrity
 | 
				
			||||||
 | 
				
			|||||||
@ -136,6 +136,25 @@ func TestCreateFromMap(t *testing.T) {
 | 
				
			|||||||
	if err := DB.Where("name = ?", "create_from_map_3").First(&result3).Error; err != nil || result3.Age != 20 {
 | 
						if err := DB.Where("name = ?", "create_from_map_3").First(&result3).Error; err != nil || result3.Age != 20 {
 | 
				
			||||||
		t.Fatalf("failed to query data after create from slice of map, got error %v", err)
 | 
							t.Fatalf("failed to query data after create from slice of map, got error %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						datas2 := []gorm.M{
 | 
				
			||||||
 | 
							{"Name": "create_from_M_1", "Age": 21},
 | 
				
			||||||
 | 
							{"name": "create_from_M_2", "Age": 22},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := DB.Model(&User{}).Create(&datas2).Error; err != nil {
 | 
				
			||||||
 | 
							t.Fatalf("failed to create data from slice of map, got error: %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var result4 User
 | 
				
			||||||
 | 
						if err := DB.Where("name = ?", "create_from_M_1").First(&result4).Error; err != nil || result4.Age != 21 {
 | 
				
			||||||
 | 
							t.Fatalf("failed to query data after create from slice of map, got error %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var result5 User
 | 
				
			||||||
 | 
						if err := DB.Where("name = ?", "create_from_M_2").First(&result5).Error; err != nil || result5.Age != 22 {
 | 
				
			||||||
 | 
							t.Fatalf("failed to query data after create from slice of map, got error %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestCreateWithAssociations(t *testing.T) {
 | 
					func TestCreateWithAssociations(t *testing.T) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user