xxjwxc

xxjwxc

微信 : jnpher

Member Since 7 years ago

流波将月去,潮水带星来, Learning is attitude,Shanghai

Experience Points
196
follower
Lessons Completed
42
follow
Lessons Completed
207
stars
Best Reply Awards
23
repos

508 contributions in the last year

Pinned
⚡ database to golang struct
⚡ golang micro service base on gin. golang 微服务集成框架
⚡ gin auto binding,grpc, and annotated route,gin 注解路由, grpc,自动参数绑定工具
⚡ golang worker pool , Concurrency limiting goroutine pool
⚡ golang,微信小程序,电商系统
⚡ Golang RESTful Client for HanLP.中文分词 词性标注 命名实体识别 依存句法分析 语义依存分析 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理
Activity
Jan
19
5 days ago
Jan
18
6 days ago
Activity icon
issue

xxjwxc issue xxjwxc/gormt

xxjwxc
xxjwxc

当字段的注释存在换行符时,生成的文件语法错误

例如,字段定义:

  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态 \r\n1: normal\r\n2: deleted'

生成的go代码:

Status	int8	`gorm:"index:time_status_index;column:status;type:tinyint(4);not null;default:0"`	// 状态 
1: normal
2: deleted

不符合go语法。

解决方案:

  1. 替换注释中的换行符为; (代码可能更整洁一点儿
  2. 替换注释中的换行符为\n//
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

当字段的注释存在换行符时,生成的文件语法错误

例如,字段定义:

  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态 \r\n1: normal\r\n2: deleted'

生成的go代码:

Status	int8	`gorm:"index:time_status_index;column:status;type:tinyint(4);not null;default:0"`	// 状态 
1: normal
2: deleted

不符合go语法。

解决方案:

  1. 替换注释中的换行符为; (代码可能更整洁一点儿
  2. 替换注释中的换行符为\n//
started
started time in 6 days ago
Jan
13
1 week ago
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

使用GetFrom....之类的函数进行查找时,怎么判断是否存在

例如调用这个方法进行查询的时候,如果判断找的数据是否存在。使用Find查找的时候,如果没有数据存在,会填入默认值,并且err也为nil。 是否应该把结果的RowsAffected 也一起返回,通过这个来判断是否找到数据

func (obj *_AdminMgr) GetFromID(id uint) (result Admin, err error) {
	err = obj.DB.WithContext(obj.ctx).Model(Admin{}).Where("`id` = ?", id).Find(&result).Error

	return
}
xxjwxc
xxjwxc

通过id可以判断,

Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

Missing references

no references as a condition for preload gorm gormt result image expected image

Jan
11
1 week ago
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

string pointer not working as expected

the code below is the result generated from gormt. in the database string nulllable, but generate from gormt does not use pointers. but the integer is as expected, the nullable integer uses a pointer

image

Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

the result of generating id with UUID type is not as expected

my database uses uuid, but why does the generated gormt code use gorm.model? while gorm.model the ID type is int while in the database it uses string

image image

xxjwxc
xxjwxc

image

这三个同时存在,会变成gorm.model。这是gorm标准

Jan
9
2 weeks ago
push

xxjwxc push xxjwxc/gormt

xxjwxc
xxjwxc

当字段默认值为NULL,并且结构不设置为指针时,添加default:null的tag

xxjwxc
xxjwxc

Merge pull request #192 from jiang4869/master

当字段默认值为NULL,并且结构不设置为指针时,添加default:null的tag

commit sha: ce6259fb05686acd8908d46711b7743e8d77b14e

push time in 2 weeks ago
pull request

xxjwxc pull request xxjwxc/gormt

xxjwxc
xxjwxc

当字段默认值为NULL,并且结构不设置为指针时,添加default:null的tag

当字段默认值为NULL,并且结构不设置为指针时,如果没有添加default:null的tag,在新增和一切其他操作时,会出错。因为在这个字段上会加上默认的0值。

Jan
7
2 weeks ago
push

xxjwxc push xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

xxjwxc
xxjwxc

修改类名,增加链式调用

xxjwxc
xxjwxc

Merge pull request #191 from jiang4869/master

给自定义SQL增加了根据条件判断是否生成的功能

commit sha: 9e62d21919b2f9435ce5ff0589baa55726ad53c8

push time in 2 weeks ago
pull request

xxjwxc pull request xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

给自定义SQL增加了根据条件判断是否生成的功能。因为有时候在查询时,某些字段需要根据前端传过来的查询参数来决定是否需要,例如对文章标题或者内容字段进行查找时,只有当前端传递过来的title这个字段不为空时才需要添加。使用类似下列情况

query := model.Query{}
query.AndOnCondition(vo.GetTitle()!= nil,"title","=",vo.GetTitle())
query.And("username", "=", "name1")

像下面这个生成的sql为

query := model.Query{}
query.And("username", "=", "name1")
query.OrOnCondition(false, "password", "=", "pwd1")
fmt.Println(query.Get())
`username` = ? [name1]

在使用自定义SQL时,直接把Get()的返回值当作参数传给db.Where() 会出现下列问题,所有的参数都只会被放到第一个变量里面而已。

SELECT * FROM `blog_admin` WHERE `username` = ('name1','pwd1') or `password` = ?

所以应该接受Get()的返回值后,再分别传入

accountMgr := model.AccountMgr(db.Where(where, obj))
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

给自定义SQL增加了根据条件判断是否生成的功能。因为有时候在查询时,某些字段需要根据前端传过来的查询参数来决定是否需要,例如对文章标题或者内容字段进行查找时,只有当前端传递过来的title这个字段不为空时才需要添加。使用类似下列情况

query := model.Query{}
query.AndOnCondition(vo.GetTitle()!= nil,"title","=",vo.GetTitle())
query.And("username", "=", "name1")

像下面这个生成的sql为

query := model.Query{}
query.And("username", "=", "name1")
query.OrOnCondition(false, "password", "=", "pwd1")
fmt.Println(query.Get())
`username` = ? [name1]

在使用自定义SQL时,直接把Get()的返回值当作参数传给db.Where() 会出现下列问题,所有的参数都只会被放到第一个变量里面而已。

SELECT * FROM `blog_admin` WHERE `username` = ('name1','pwd1') or `password` = ?

所以应该接受Get()的返回值后,再分别传入

accountMgr := model.AccountMgr(db.Where(where, obj))
xxjwxc
xxjwxc

可以修改下:model.Query 还是用condition来吧。类改掉之后增量升级会有问题

Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

给自定义SQL增加了根据条件判断是否生成的功能。因为有时候在查询时,某些字段需要根据前端传过来的查询参数来决定是否需要,例如对文章标题或者内容字段进行查找时,只有当前端传递过来的title这个字段不为空时才需要添加。使用类似下列情况

query := model.Query{}
query.AndOnCondition(vo.GetTitle()!= nil,"title","=",vo.GetTitle())
query.And("username", "=", "name1")

像下面这个生成的sql为

query := model.Query{}
query.And("username", "=", "name1")
query.OrOnCondition(false, "password", "=", "pwd1")
fmt.Println(query.Get())
`username` = ? [name1]

在使用自定义SQL时,直接把Get()的返回值当作参数传给db.Where() 会出现下列问题,所有的参数都只会被放到第一个变量里面而已。

SELECT * FROM `blog_admin` WHERE `username` = ('name1','pwd1') or `password` = ?

所以应该接受Get()的返回值后,再分别传入

accountMgr := model.AccountMgr(db.Where(where, obj))
xxjwxc
xxjwxc

这个我觉得不太有必要: 可以这样来: query := model.Query{} if vo.GetTitle()!= nil { query.And("title","=",vo.GetTitle()) } query.And("username", "=", "name1")

正在考虑支持这个: https://github.com/xxjwxc/gormt/issues/166

Jan
6
2 weeks ago
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

给自定义SQL增加了根据条件判断是否生成的功能。因为有时候在查询时,某些字段需要根据前端传过来的查询参数来决定是否需要,例如对文章标题或者内容字段进行查找时,只有当前端传递过来的title这个字段不为空时才需要添加。使用类似下列情况

query := model.Query{}
query.AndOnCondition(vo.GetTitle()!= nil,"title","=",vo.GetTitle())
query.And("username", "=", "name1")

在使用自定义SQL时,直接把Get()的返回值当作参数传给db.Where() 会出现下列问题,所有的参数都只会被放到第一个变量里面而已。

SELECT * FROM `blog_admin` WHERE `username` = ('name1','pwd1') or `password` = ?

所以应该接受Get()的返回值后,再分别传入

accountMgr := model.AccountMgr(db.Where(where, obj))
xxjwxc
xxjwxc

正确做法应该像这种: accountMgr := model.AccountMgr(db.Where(where, obj...))

Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

给自定义SQL增加了根据条件判断是否生成的功能

给自定义SQL增加了根据条件判断是否生成的功能。因为有时候在查询时,某些字段需要根据前端传过来的查询参数来决定是否需要,例如对文章标题或者内容字段进行查找时,只有当前端传递过来的title这个字段不为空时才需要添加。使用类似下列情况

query := model.Query{}
query.AndOnCondition(vo.GetTitle()!= nil,"title","=",vo.GetTitle())
query.And("username", "=", "name1")

在使用自定义SQL时,直接把Get()的返回值当作参数传给db.Where() 会出现下列问题,所有的参数都只会被放到第一个变量里面而已。

SELECT * FROM `blog_admin` WHERE `username` = ('name1','pwd1') or `password` = ?

所以应该接受Get()的返回值后,再分别传入

accountMgr := model.AccountMgr(db.Where(where, obj))
xxjwxc
xxjwxc

你用condition条件试下把obj改成obj...

push

xxjwxc push xxjwxc/gormt

xxjwxc
xxjwxc

Update common.go

当表字段类型为datetime或者date并且默认为NULL时,在结构中需要设置成指针类型

xxjwxc
xxjwxc

Merge pull request #190 from fchange/patch-1

Update common.go

commit sha: f79e1becc7a8309e5ad0ec1ff5ead2152fc31398

push time in 2 weeks ago
pull request

xxjwxc pull request xxjwxc/gormt

xxjwxc
xxjwxc

Update common.go

当表字段类型为datetime或者date并且默认为NULL时,在结构中需要设置成指针类型

Jan
5
2 weeks ago
pull request

xxjwxc pull request xxjwxc/uber_go_guide_cn

xxjwxc
xxjwxc

修复错误与补全链接

  • 修复合冲突的错误,更新部分翻译
  • 修复缺失的跳转链接
Activity icon
issue

xxjwxc issue comment xxjwxc/gormt

xxjwxc
xxjwxc

在gormt中使用分页查询

关于分页查询的使用大家可以参考这个博客 gormt中分页查询的使用

xxjwxc
xxjwxc

已更新到readme里面

Jan
4
2 weeks ago
push

xxjwxc push xxjwxc/gormt

xxjwxc
xxjwxc

Merge pull request #188 from jiang4869/master

完善分页开关

commit sha: 8a133e0318714abbb36b9be5ea38309babcd27e0

push time in 2 weeks ago
pull request

xxjwxc pull request xxjwxc/gormt

xxjwxc
xxjwxc

完善分页开关

如果关闭生成分页函数的话,data/view/genfunc/def.go中的SelectPage也应该关闭,因为这个函数依赖gen.page.go中的IPage,如果关闭的时候还生成了这个函数,会导致报错

Previous