From 9f6a4eba805cbf74ccf02133571e616926ef7ec5 Mon Sep 17 00:00:00 2001 From: tx7do Date: Sat, 14 Dec 2024 14:41:44 +0800 Subject: [PATCH] feat: ent support update json field. --- entgo/update/update.go | 15 +++++++++++---- tag.bat | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/entgo/update/update.go b/entgo/update/update.go index d1af3f8..0481053 100644 --- a/entgo/update/update.go +++ b/entgo/update/update.go @@ -34,7 +34,7 @@ func BuildSetNullUpdater(fields []string) func(u *sql.UpdateBuilder) { } // ExtractJsonFieldKeyValues 提取json字段的键值对 -func ExtractJsonFieldKeyValues(msg proto.Message, paths []string) []string { +func ExtractJsonFieldKeyValues(msg proto.Message, paths []string, needToSnakeCase bool) []string { var keyValues []string rft := msg.ProtoReflect() for _, path := range paths { @@ -46,7 +46,14 @@ func ExtractJsonFieldKeyValues(msg proto.Message, paths []string) []string { continue } - keyValues = append(keyValues, fmt.Sprintf("'%s'", stringcase.ToSnakeCase(path))) + var k string + if needToSnakeCase { + k = stringcase.ToSnakeCase(path) + } else { + k = path + } + + keyValues = append(keyValues, fmt.Sprintf("'%s'", k)) v := rft.Get(fd) switch v.Interface().(type) { @@ -77,8 +84,8 @@ func SetJsonNullFieldUpdateBuilder(fieldName string, msg proto.Message, paths [] } // SetJsonFieldValueUpdateBuilder 设置json字段的值 -func SetJsonFieldValueUpdateBuilder(fieldName string, msg proto.Message, paths []string) func(u *sql.UpdateBuilder) { - keyValues := ExtractJsonFieldKeyValues(msg, paths) +func SetJsonFieldValueUpdateBuilder(fieldName string, msg proto.Message, paths []string, needToSnakeCase bool) func(u *sql.UpdateBuilder) { + keyValues := ExtractJsonFieldKeyValues(msg, paths, needToSnakeCase) if len(keyValues) == 0 { return nil } diff --git a/tag.bat b/tag.bat index d2db3f8..4963b9a 100644 --- a/tag.bat +++ b/tag.bat @@ -3,7 +3,7 @@ git tag v1.1.13 git tag bank_card/v1.1.3 git tag geoip/v1.1.3 -git tag entgo/v1.1.17 +git tag entgo/v1.1.18 git tag gorm/v1.1.3 git push origin --tags