@@ -45,7 +45,7 @@ func DeleteByIds[T any](ids ...any) *gorm.DB {
45
45
46
46
func Delete [T any ](q * Query [T ]) * gorm.DB {
47
47
var entity T
48
- resultDb := GormDb .Where (q .QueryBuilder .String (), q .Args ... ).Delete (& entity )
48
+ resultDb := GormDb .Where (q .QueryBuilder .String (), q .QueryArgs ... ).Delete (& entity )
49
49
return resultDb
50
50
}
51
51
@@ -57,7 +57,7 @@ func UpdateById[T any](id any, entity *T) *gorm.DB {
57
57
}
58
58
59
59
func Update [T any ](q * Query [T ], entity * T ) * gorm.DB {
60
- resultDb := GormDb .Where (q .QueryBuilder .String (), q .Args ... ).Updates (entity )
60
+ resultDb := GormDb .Where (q .QueryBuilder .String (), q .QueryArgs ... ).Updates (entity )
61
61
return resultDb
62
62
}
63
63
@@ -75,23 +75,29 @@ func SelectByIds[T any](ids ...any) (*gorm.DB, []T) {
75
75
76
76
func SelectOne [T any ](q * Query [T ]) (* gorm.DB , T ) {
77
77
var entity T
78
- resultDb := GormDb .Select (q .Columns ).Where (q .QueryBuilder .String (), q .Args ... ).First (& entity )
78
+ resultDb := GormDb .Select (q .Columns ).Where (q .QueryBuilder .String (), q .QueryArgs ... ).First (& entity )
79
79
return resultDb , entity
80
80
}
81
81
82
82
func SelectList [T any ](q * Query [T ]) (* gorm.DB , []T ) {
83
83
var results []T
84
- resultDb := GormDb .Select (q .Columns ).Where (q .QueryBuilder .String (), q .Args ... ).
84
+ resultDb := GormDb .Select (q .Columns ).Where (q .QueryBuilder .String (), q .QueryArgs ... ).
85
85
Order (q .OrderBuilder .String ())
86
+
86
87
if q .GroupBuilder .Len () > 0 {
87
88
resultDb .Group (q .GroupBuilder .String ())
88
89
}
90
+
91
+ if q .HavingBuilder .Len () > 0 {
92
+ resultDb .Having (q .HavingBuilder .String (), q .HavingArgs ... )
93
+ }
94
+
89
95
resultDb .Find (& results )
90
96
return resultDb , results
91
97
}
92
98
93
99
func SelectCount [T any ](q * Query [T ]) (* gorm.DB , int64 ) {
94
100
var count int64
95
- resultDb := GormDb .Model (new (T )).Where (q .QueryBuilder .String (), q .Args ... ).Count (& count )
101
+ resultDb := GormDb .Model (new (T )).Where (q .QueryBuilder .String (), q .QueryArgs ... ).Count (& count )
96
102
return resultDb , count
97
103
}
0 commit comments