Can't believe this, Find works!
This commit is contained in:
		
							parent
							
								
									0491675ae8
								
							
						
					
					
						commit
						3e7e110590
					
				
							
								
								
									
										6
									
								
								orm.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								orm.go
									
									
									
									
									
								
							| @ -85,14 +85,12 @@ func (s *Orm) Select(value interface{}) *Orm { | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) Save(value interface{}) *Orm { | ||||
| 	s.explain(value, "Save") | ||||
| 	s.Exec() | ||||
| 	s.explain(value, "Save").Exec() | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) Delete(value interface{}) *Orm { | ||||
| 	s.explain(value, "Delete") | ||||
| 	s.Exec() | ||||
| 	s.explain(value, "Delete").Exec() | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -26,6 +26,14 @@ func TestSaveAndFirst(t *testing.T) { | ||||
| 	if user.Name != "jinzhu" { | ||||
| 		t.Errorf("User should be saved and fetched correctly") | ||||
| 	} | ||||
| 
 | ||||
| 	users := []User{} | ||||
| 	db.Find(&users) | ||||
| 	for _, user := range users { | ||||
| 		if user.Name != "jinzhu" { | ||||
| 			t.Errorf("User should be saved and fetched correctly") | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestWhere(t *testing.T) { | ||||
|  | ||||
							
								
								
									
										24
									
								
								sql.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								sql.go
									
									
									
									
									
								
							| @ -1,10 +1,9 @@ | ||||
| package gorm | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"fmt" | ||||
| ) | ||||
| 
 | ||||
| func (s *Orm) explain(value interface{}, operation string) *Orm { | ||||
| @ -26,11 +25,28 @@ func (s *Orm) querySql(out interface{}) { | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) query(out interface{}) { | ||||
| 	var ( | ||||
| 		is_slice  bool | ||||
| 		dest_type reflect.Type | ||||
| 	) | ||||
| 	dest_out := reflect.Indirect(reflect.ValueOf(out)) | ||||
| 
 | ||||
| 	if x := dest_out.Kind(); x == reflect.Slice { | ||||
| 		is_slice = true | ||||
| 		dest_type = dest_out.Type().Elem() | ||||
| 	} | ||||
| 
 | ||||
| 	rows, err := s.db.Query(s.Sql) | ||||
| 	s.Error = err | ||||
| 
 | ||||
| 	for rows.Next() { | ||||
| 		dest := reflect.ValueOf(out).Elem() | ||||
| 		fmt.Printf("%+v", dest) | ||||
| 		var dest reflect.Value | ||||
| 		if is_slice { | ||||
| 			dest = reflect.New(dest_type).Elem() | ||||
| 		} else { | ||||
| 			dest = reflect.ValueOf(out).Elem() | ||||
| 		} | ||||
| 
 | ||||
| 		columns, _ := rows.Columns() | ||||
| 		var values []interface{} | ||||
| 		for _, value := range columns { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu