WIP: Insert sets PK
This commit is contained in:
+15
-5
@@ -36,9 +36,10 @@ type Select[T any] struct {
|
||||
}
|
||||
|
||||
func CreateSelect[T any](orm *simpleorm.ORM, whereStmt string, args ...any) (Select[T], error) {
|
||||
table, ok := orm.Cache().Get(reflect.TypeFor[T]().Name())
|
||||
typeName := reflect.TypeFor[T]().Name()
|
||||
table, ok := orm.Cache().Get(typeName)
|
||||
if !ok {
|
||||
return Select[T]{}, errors.New("Failed to get table from schema cache")
|
||||
return Select[T]{}, errors.New("Failed to get table from schema cache: " + typeName)
|
||||
}
|
||||
|
||||
return Select[T]{target: *table, whereStmt: whereStmt, args: args}, nil
|
||||
@@ -48,7 +49,10 @@ func (s Select[T]) GetResult() []T {
|
||||
return s.result
|
||||
}
|
||||
|
||||
func (s Select[T]) Execute(conn *simpleorm.DBConnection) error {
|
||||
func (s *Select[T]) Execute(conn *simpleorm.DBConnection) error {
|
||||
// Clear before executing
|
||||
s.result = []T{}
|
||||
|
||||
dml, err := s.target.GetSelectDML()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -122,7 +126,9 @@ type Insert[T any] struct {
|
||||
}
|
||||
|
||||
func NewInsert[T any](orm *simpleorm.ORM, toInsert ...T) (Insert[T], error) {
|
||||
table, ok := orm.Cache().Get(reflect.TypeFor[T]().Name())
|
||||
typeName := reflect.TypeFor[T]().Name()
|
||||
log.LogDebug("Searching Table cache by type: %s", typeName)
|
||||
table, ok := orm.Cache().Get(typeName)
|
||||
if !ok {
|
||||
return Insert[T]{}, errors.New("Failed to get table from schema cache")
|
||||
}
|
||||
@@ -130,7 +136,7 @@ func NewInsert[T any](orm *simpleorm.ORM, toInsert ...T) (Insert[T], error) {
|
||||
return Insert[T]{target: *table, toInsert: toInsert}, nil
|
||||
}
|
||||
|
||||
func (ins Insert[T]) Execute(conn *simpleorm.DBConnection) error {
|
||||
func (ins *Insert[T]) Execute(conn *simpleorm.DBConnection) error {
|
||||
dml, err := ins.target.GetInsertDML(len(ins.toInsert))
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -170,6 +176,10 @@ func (ins Insert[T]) LastInsertId() int64 {
|
||||
return ins.lastInsertId
|
||||
}
|
||||
|
||||
func (ins Insert[T]) Target() schema.Table {
|
||||
return ins.target
|
||||
}
|
||||
|
||||
type Update[T any] struct {
|
||||
target schema.Table
|
||||
toUpdate T
|
||||
|
||||
Reference in New Issue
Block a user