浏览代码

修改bug

yjp 1 年之前
父节点
当前提交
6b82a8d226

+ 1 - 1
convenient/domain/configuration/api.go

@@ -31,7 +31,7 @@ func BindConfiguration(binder *binding.Binder, opts ...Option) {
 		TableName:         configurationTableName,
 		DomainPath:        "/configuration",
 		CreateJsonBody:    &AddConfigurationJsonBody{},
-		DeleteQueryParams: &RemoveConfigurationQueryParams{},
+		DeleteQueryParams: &RemoveConfigurationJsonBody{},
 	}, value_object.WithDisableQuery[any]())
 
 	binding.GetBind(binder, &binding.SimpleBindItem[map[string]any]{

+ 47 - 4
convenient/domain/configuration/entity.go

@@ -5,13 +5,22 @@ import (
 	"git.sxidc.com/service-supports/fserr"
 )
 
+const (
+	ColumnGroup = "group"
+	ColumnValue = "value"
+)
+
+const (
+	domainCNName = "配置"
+)
+
 const (
 	tableName = "configurations"
 )
 
 const (
-	ColumnGroup = "group"
-	ColumnValue = "value"
+	fieldGroupMaxLen = 256
+	fieldValueMaxLen = 256
 )
 
 type Entity struct {
@@ -20,12 +29,46 @@ type Entity struct {
 }
 
 func (e *Entity) DomainCNName() string {
-	return "配置"
+	return domainCNName
 }
 
 func (e *Entity) CheckKeyFields() error {
+	return e.checkFieldGroup()
+}
+
+func (e *Entity) ForCreate() error {
+	err := e.checkFieldGroup()
+	if err != nil {
+		return err
+	}
+
+	err = e.checkFieldValue()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (e *Entity) checkFieldGroup() error {
 	if strutils.IsStringEmpty(e.Group) {
-		return fserr.New("没有传递配置组")
+		return fserr.New(domainCNName + "组为空")
+	}
+
+	if len(e.Group) > fieldGroupMaxLen {
+		return fserr.New(domainCNName + "组超出限定长度")
+	}
+
+	return nil
+}
+
+func (e *Entity) checkFieldValue() error {
+	if strutils.IsStringEmpty(e.Value) {
+		return fserr.New(domainCNName + "值为空")
+	}
+
+	if len([]byte(e.Value)) > fieldValueMaxLen {
+		return fserr.New(domainCNName + "值超出限定长度")
 	}
 
 	return nil

+ 5 - 5
convenient/domain/configuration/request_params.go

@@ -2,15 +2,15 @@ package configuration
 
 type (
 	AddConfigurationJsonBody struct {
-		GroupName string `json:"group" binding:"required" assign:"toField:Group"`
-		Value     string `json:"value" binding:"required" assign:"toField:value"`
+		Group string `json:"group" binding:"required" assign:"toField:Group"`
+		Value string `json:"value" binding:"required" assign:"toField:Value"`
 	}
 
-	RemoveConfigurationQueryParams struct {
-		GroupName string `form:"group" binding:"required" assign:"toField:Group"`
+	RemoveConfigurationJsonBody struct {
+		Group string `json:"group" binding:"required" assign:"toField:Group"`
 	}
 
 	GetConfigurationValuesQueryParams struct {
-		GroupName string `form:"group" binding:"required" assign:"toField:Group"`
+		Group string `form:"group" binding:"required" assign:"toField:Group"`
 	}
 )

+ 7 - 7
convenient/entity/service.go

@@ -28,7 +28,7 @@ func Create(tableName string, callbacks *Callbacks[string]) binding.ServiceFunc[
 			return callbackOnErrorReturn(callbacks, e, err, i, "")
 		}
 
-		err = e.CheckID()
+		err = e.ForCreate()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, "")
 		}
@@ -65,7 +65,7 @@ func Delete(tableName string, callbacks *Callbacks[any]) binding.ServiceFunc[any
 			return nil, fserr.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.CheckID()
+		err := e.ForDelete()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, nil)
 		}
@@ -98,7 +98,7 @@ func Update(tableName string, callbacks *Callbacks[any]) binding.ServiceFunc[any
 			return nil, fserr.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.CheckID()
+		err := e.ForUpdate()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, nil)
 		}
@@ -223,7 +223,7 @@ func GetByID[O any](tableName string, callbacks *Callbacks[O]) binding.ServiceFu
 			return outputZero, fserr.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.CheckID()
+		err := e.CheckFieldID()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, outputZero)
 		}
@@ -277,7 +277,7 @@ func CreateTx(tableName string, callbacks *Callbacks[string]) binding.ServiceFun
 			return callbackOnErrorReturn(callbacks, e, err, i, "")
 		}
 
-		err = e.CheckID()
+		err = e.CheckFieldID()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, "")
 		}
@@ -321,7 +321,7 @@ func DeleteTx(tableName string, callbacks *Callbacks[any]) binding.ServiceFunc[a
 			return nil, fserr.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.CheckID()
+		err := e.CheckFieldID()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, nil)
 		}
@@ -361,7 +361,7 @@ func UpdateTx(tableName string, callbacks *Callbacks[any]) binding.ServiceFunc[a
 			return nil, fserr.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.CheckID()
+		err := e.CheckFieldID()
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, e, err, i, nil)
 		}

+ 6 - 1
convenient/value_object/service.go

@@ -23,7 +23,12 @@ func Create(tableName string, callbacks *Callbacks[any]) binding.ServiceFunc[any
 			return nil, fserr.New("需要传递领域对象应该为值对象")
 		}
 
-		err := callbackBeforeDBOperate(callbacks, valueObject, i, dbExecutor)
+		err := valueObject.ForCreate()
+		if err != nil {
+			return callbackOnErrorReturn(callbacks, valueObject, err, i, nil)
+		}
+
+		err = callbackBeforeDBOperate(callbacks, valueObject, i, dbExecutor)
 		if err != nil {
 			return callbackOnErrorReturn(callbacks, valueObject, err, i, nil)
 		}

+ 16 - 14
convenient/value_object/simple.go

@@ -58,28 +58,30 @@ func (simple *Simple[I]) bind(binder *binding.Binder) {
 	}
 
 	// 删除班级
-	if options.disableDelete {
+	if !options.disableDelete {
 		if !options.deleteNeedTx {
-			binding.DeleteBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.DomainPath + "/:id/delete",
-				ResponseFunc:  response.SendMsgResponse,
-				RequestParams: simple.DeleteQueryParams,
-				Objects:       []domain.Object{simple.ValueObject},
-				ServiceFunc:   Delete(simple.TableName, options.deleteCallbacks),
+			binding.PostBind(binder, &binding.SimpleBindItem[any]{
+				Path:                  simple.DomainPath + "/delete",
+				ResponseFunc:          response.SendMsgResponse,
+				RequestParams:         simple.DeleteQueryParams,
+				RequestParamsBindFunc: request.JsonBody,
+				Objects:               []domain.Object{simple.ValueObject},
+				ServiceFunc:           Delete(simple.TableName, options.deleteCallbacks),
 			})
 		} else {
-			binding.DeleteBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.DomainPath + "/:id/delete",
-				ResponseFunc:  response.SendMsgResponse,
-				RequestParams: simple.DeleteQueryParams,
-				Objects:       []domain.Object{simple.ValueObject},
-				ServiceFunc:   DeleteTx(simple.TableName, options.deleteCallbacks),
+			binding.PostBind(binder, &binding.SimpleBindItem[any]{
+				Path:                  simple.DomainPath + "/delete",
+				ResponseFunc:          response.SendMsgResponse,
+				RequestParams:         simple.DeleteQueryParams,
+				RequestParamsBindFunc: request.JsonBody,
+				Objects:               []domain.Object{simple.ValueObject},
+				ServiceFunc:           DeleteTx(simple.TableName, options.deleteCallbacks),
 			})
 		}
 	}
 
 	// 查询班级
-	if options.disableQuery {
+	if !options.disableQuery {
 		binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[I]]{
 			Path:          simple.DomainPath + "/query",
 			ResponseFunc:  response.SendInfosResponse[I],

+ 3 - 3
domain/common.go

@@ -23,7 +23,7 @@ type TenantIDField struct {
 	TenantID string `sqlmapping:"column:tenant_id;" sqlresult:"column:tenant_id;"`
 }
 
-func (field *TenantIDField) CheckTenantIDField(domainCNName string, errCode int) error {
+func (field *TenantIDField) CheckFieldTenantID(domainCNName string, errCode int) error {
 	if strutils.IsStringEmpty(field.TenantID) {
 		return fserr.WithCode(nil, errCode, fserr.MsgOption(domainCNName+"租户ID为空"))
 	}
@@ -40,7 +40,7 @@ type UserIDFields struct {
 	LastUpdateUserID string `sqlmapping:"column:last_update_user_id;" sqlresult:"column:last_update_user_id;"`
 }
 
-func (field *UserIDFields) CheckCreateUserIDField(domainCNName string, errCode int) error {
+func (field *UserIDFields) CheckFieldCreateUserID(domainCNName string, errCode int) error {
 	if strutils.IsStringEmpty(field.CreateUserID) {
 		return fserr.WithCode(nil, errCode, fserr.MsgOption(domainCNName+"创建用户ID为空"))
 	}
@@ -52,7 +52,7 @@ func (field *UserIDFields) CheckCreateUserIDField(domainCNName string, errCode i
 	return nil
 }
 
-func (field *UserIDFields) CheckLastUpdateUserIDField(domainCNName string, errCode int) error {
+func (field *UserIDFields) CheckFieldLastUpdateUserID(domainCNName string, errCode int) error {
 	if strutils.IsStringEmpty(field.LastUpdateUserID) {
 		return fserr.WithCode(nil, errCode, fserr.MsgOption(domainCNName+"最近更新用户ID为空"))
 	}

+ 17 - 2
domain/entity.go

@@ -10,8 +10,11 @@ type Entity interface {
 	DomainCNName() string
 	GenerateID() error
 	GetID() string
-	CheckID() error
+	CheckFieldID() error
 	IDColumnName() string
+	ForCreate() error
+	ForDelete() error
+	ForUpdate() error
 }
 
 type BaseEntity struct {
@@ -31,7 +34,7 @@ func (e *BaseEntity) GetID() string {
 	return e.ID
 }
 
-func (e *BaseEntity) CheckID() error {
+func (e *BaseEntity) CheckFieldID() error {
 	if strutils.IsStringEmpty(e.ID) {
 		return fserr.New(e.DomainCNName() + "ID为空")
 	}
@@ -46,3 +49,15 @@ func (e *BaseEntity) CheckID() error {
 func (e *BaseEntity) IDColumnName() string {
 	return ColumnID
 }
+
+func (e *BaseEntity) ForCreate() error {
+	panic("领域实体没有实现ForCreate接口")
+}
+
+func (e *BaseEntity) ForDelete() error {
+	panic("领域实体没有实现ForDelete接口")
+}
+
+func (e *BaseEntity) ForUpdate() error {
+	panic("领域实体没有实现ForUpdate接口")
+}

+ 1 - 0
domain/value_object.go

@@ -4,4 +4,5 @@ type ValueObject interface {
 	Object
 	DomainCNName() string
 	CheckKeyFields() error
+	ForCreate() error
 }

+ 74 - 3
examples/example_domain/class/entity.go

@@ -2,19 +2,90 @@ package class
 
 import (
 	"git.sxidc.com/go-framework/baize/domain"
+	"git.sxidc.com/go-tools/utils/strutils"
+	"git.sxidc.com/service-supports/fserr"
 )
 
 const (
 	TableName = "test.classes"
 )
 
+const (
+	ColumnName       = "name"
+	ColumnStudentNum = "student_num"
+)
+
+const (
+	domainCNName = "班级"
+)
+
+const (
+	fieldNameMaxLen = 128
+)
+
 type Entity struct {
 	domain.BaseEntity
 	Name       string `sqlmapping:"column:name" sqlresult:"column:name"`
-	StudentNum int    `sqlmapping:"column:student_num" sqlresult:"column:student_num"`
+	StudentNum int    `sqlmapping:"column:student_num;updateClear;" sqlresult:"column:student_num"`
 	domain.TimeFields
 }
 
-func (class *Entity) DomainCNName() string {
-	return "班级"
+func (e *Entity) DomainCNName() string {
+	return domainCNName
+}
+
+func (e *Entity) ForCreate() error {
+	err := e.CheckFieldID()
+	if err != nil {
+		return err
+	}
+
+	err = e.checkFieldName()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (e *Entity) ForDelete() error {
+	return e.CheckFieldID()
+}
+
+func (e *Entity) ForUpdate() error {
+	err := e.CheckFieldID()
+	if err != nil {
+		return err
+	}
+
+	err = e.checkUpdateFields()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (e *Entity) checkFieldName() error {
+	if strutils.IsStringEmpty(e.Name) {
+		return fserr.New(domainCNName + "名称为空")
+	}
+
+	if len(e.Name) > fieldNameMaxLen {
+		return fserr.New(domainCNName + "名称超出限定长度")
+	}
+
+	return nil
+}
+
+func (e *Entity) checkUpdateFields() error {
+	if strutils.AllBlank(e.Name) {
+		return fserr.New(domainCNName + "没有传递需要更新的字段")
+	}
+
+	if strutils.IsStringNotEmpty(e.Name) && len(e.Name) > fieldNameMaxLen {
+		return fserr.New(domainCNName + "名称超出限定长度")
+	}
+
+	return nil
 }

+ 50 - 2
examples/example_domain/configuration/entity.go

@@ -9,18 +9,66 @@ const (
 	TableName = "test.configurations"
 )
 
+const (
+	ColumnGroup = "group"
+	ColumnValue = "value"
+)
+
+const (
+	domainCNName = "配置"
+)
+
+const (
+	fieldGroupMaxLen = 256
+	fieldValueMaxLen = 256
+)
+
 type Entity struct {
 	Group string `sqlmapping:"column:group;key;notUpdate;" sqlresult:"column:group;"`
 	Value string `sqlmapping:"column:value;notUpdate;" sqlresult:"column:value;"`
 }
 
 func (e *Entity) DomainCNName() string {
-	return "配置"
+	return domainCNName
 }
 
 func (e *Entity) CheckKeyFields() error {
+	return e.checkFieldGroup()
+}
+
+func (e *Entity) ForCreate() error {
+	err := e.checkFieldGroup()
+	if err != nil {
+		return err
+	}
+
+	err = e.checkFieldValue()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (e *Entity) checkFieldGroup() error {
 	if strutils.IsStringEmpty(e.Group) {
-		return fserr.New("没有传递配置组")
+		return fserr.New(domainCNName + "组为空")
+	}
+
+	if len(e.Group) > fieldGroupMaxLen {
+		return fserr.New(domainCNName + "组超出限定长度")
+	}
+
+	return nil
+}
+
+func (e *Entity) checkFieldValue() error {
+	if strutils.IsStringEmpty(e.Value) {
+		return fserr.New(domainCNName + "值为空")
+	}
+
+	if len([]byte(e.Value)) > fieldValueMaxLen {
+		return fserr.New(domainCNName + "值超出限定长度")
 	}
 
 	return nil

+ 6 - 0
examples/example_domain/configuration/info.go

@@ -0,0 +1,6 @@
+package configuration
+
+type Info struct {
+	Group string `sqlresult:"column:group;"`
+	Value string `sqlresult:"column:value;"`
+}

+ 18 - 0
examples/example_domain/configuration/request_params.go

@@ -1 +1,19 @@
 package configuration
+
+import "git.sxidc.com/go-framework/baize/binding/request"
+
+type (
+	CreateConfigurationJsonBody struct {
+		Group string `json:"group" binding:"required" assign:"toField:Group"`
+		Value string `json:"value" binding:"required" assign:"toField:Value"`
+	}
+
+	DeleteConfigurationJsonBody struct {
+		Group string `json:"group" binding:"required" assign:"toField:Group"`
+	}
+
+	GetConfigurationValuesQueryParams struct {
+		Group string `form:"group" binding:"required" assign:"toField:Group"`
+		request.BaseQuery
+	}
+)

+ 59 - 23
examples/examples/value_object/main.go

@@ -1,36 +1,72 @@
 package main
 
 import (
-	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"git.sxidc.com/go-framework/baize"
+	"git.sxidc.com/go-framework/baize/application"
+	"git.sxidc.com/go-framework/baize/convenient/value_object"
+	"git.sxidc.com/go-framework/baize/examples/example_domain/configuration"
+	"git.sxidc.com/go-framework/baize/infrastructure"
+	"git.sxidc.com/go-framework/baize/infrastructure/database/operations"
+	DEATH "github.com/vrecan/death"
+	"syscall"
 )
 
-type Configuration struct {
-	Group string `sqlmapping:"column:group;key;notUpdate;" sqlresult:"column:group;"`
-	Value string `sqlmapping:"column:value;notUpdate;" sqlresult:"column:value;"`
-}
+// curl -X POST -H "Content-Type: application/json" -d '{"group":"test", "value":"test-value"}' "http://localhost:10100/test/v1/configuration/create"
+// curl -X GET "http://localhost:10100/test/v1/configuration/query?group=test&pageNo=1&pageSize=1"
+// curl -X POST -H "Content-Type: application/json" -d '{"group":"test"}' "http://localhost:10100/test/v1/configuration/delete"
 
-func (e *Configuration) DomainCNName() string {
-	return "配置"
-}
+func main() {
+	app := baize.NewApplication(application.Config{
+		ApiConfig: application.ApiConfig{
+			UrlPrefix: "test",
+			Port:      "10100",
+		},
+		InfrastructureConfig: application.InfrastructureConfig{
+			Database: infrastructure.DatabaseConfig{
+				Operations: &operations.Config{
+					UserName:           "test",
+					Password:           "123456",
+					Address:            "localhost",
+					Port:               "30432",
+					Database:           "test",
+					MaxConnections:     40,
+					MaxIdleConnections: 10,
+				},
+			},
+		},
+	})
 
-func (e *Configuration) CheckKeyFields() error {
-	if strutils.IsStringEmpty(e.Group) {
-		return fserr.New("没有传递配置组")
-	}
+	defer func() {
+		baize.DestroyApplication(app)
+	}()
 
-	return nil
-}
+	app.Api().
+		PrefixRouter().
+		RegisterVersionedRouter("v1")
 
-type ConfigurationInfo struct {
-	Group string `sqlresult:"column:group;"`
-	Value string `sqlresult:"column:value;"`
-}
+	value_object.BindSimple[configuration.Info](app.Binder("v1"), &value_object.Simple[configuration.Info]{
+		ValueObject:       &configuration.Entity{},
+		TableName:         configuration.TableName,
+		DomainPath:        "/configuration",
+		CreateJsonBody:    &configuration.CreateConfigurationJsonBody{},
+		DeleteQueryParams: &configuration.DeleteConfigurationJsonBody{},
+		QueryQueryParams:  &configuration.GetConfigurationValuesQueryParams{},
+	})
 
-const (
-	tableName = "test.configurations"
-)
+	go func() {
+		err := app.Start()
+		if err != nil {
+			panic(err)
+		}
+	}()
 
-func main() {
+	defer func() {
+		err := app.Finish()
+		if err != nil {
+			panic(err)
+		}
+	}()
 
+	death := DEATH.NewDeath(syscall.SIGINT, syscall.SIGTERM)
+	_ = death.WaitForDeath()
 }

+ 23 - 1
examples/resources.yaml

@@ -25,7 +25,7 @@ kind: DataContainer
 spec:
   namespace: baize
   data_source: baize-binding
-  name: baize-binding
+  name: test.classes
   spec:
     table_name: test.classes
     columns:
@@ -51,3 +51,25 @@ spec:
         type: "timestamp with time zone"
         comment: 最近更新时间
         not_null: true
+
+---
+
+kind: DataContainer
+spec:
+  namespace: baize
+  data_source: baize-binding
+  name: test.configurations
+  spec:
+    table_name: test.configurations
+    columns:
+      - name: group
+        type: varchar(256)
+        comment: 组
+        not_null: true
+        index: true
+      - name: value
+        type: varchar(256)
+        comment: 值
+        not_null: true
+        index: true
+

+ 9 - 9
infrastructure/database/sql/condition.go

@@ -27,7 +27,7 @@ func (conditions *Conditions) Equal(columnName string, value any) *Conditions {
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" = "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" = "+parsedValue)
 
 	return conditions
 }
@@ -43,7 +43,7 @@ func (conditions *Conditions) Like(columnName string, value string) *Conditions
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" LIKE "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" LIKE "+parsedValue)
 
 	return conditions
 }
@@ -59,7 +59,7 @@ func (conditions *Conditions) In(columnName string, value any) *Conditions {
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" IN "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" IN "+parsedValue)
 
 	return conditions
 }
@@ -75,7 +75,7 @@ func (conditions *Conditions) NotIn(columnName string, value any) *Conditions {
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" NOT IN "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" NOT IN "+parsedValue)
 
 	return conditions
 }
@@ -91,7 +91,7 @@ func (conditions *Conditions) Not(columnName string, value any) *Conditions {
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" != "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" != "+parsedValue)
 
 	return conditions
 }
@@ -107,7 +107,7 @@ func (conditions *Conditions) LessThan(columnName string, value any) *Conditions
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" < "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" < "+parsedValue)
 
 	return conditions
 }
@@ -123,7 +123,7 @@ func (conditions *Conditions) LessThanAndEqual(columnName string, value any) *Co
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" <= "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" <= "+parsedValue)
 
 	return conditions
 }
@@ -139,7 +139,7 @@ func (conditions *Conditions) GreaterThan(columnName string, value any) *Conditi
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" > "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" > "+parsedValue)
 
 	return conditions
 }
@@ -155,7 +155,7 @@ func (conditions *Conditions) GreaterThanAndEqual(columnName string, value any)
 		return conditions
 	}
 
-	conditions.Conditions = append(conditions.Conditions, columnName+" >= "+parsedValue)
+	conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" >= "+parsedValue)
 
 	return conditions
 }

+ 1 - 1
infrastructure/database/sql/table_row.go

@@ -28,7 +28,7 @@ func (tableRow *TableRow) Add(column string, value any) *TableRow {
 	}
 
 	tableRow.columnValues = append(tableRow.columnValues, columnValue{
-		column: column,
+		column: "\"" + column + "\"",
 		value:  parsedValue,
 	})
 

+ 2 - 0
infrastructure/database/sql/value.go

@@ -12,6 +12,8 @@ const (
 	timeWriteFormat = time.DateTime + ".000000 +08:00"
 )
 
+var keyWordsMap = map[string]any{}
+
 func toSqlValue(value any) (string, error) {
 	if value == nil {
 		return "", nil