主题:生成的 Insert 语句为什么字段不全?

ifu25 2019年08月30日 53

如图,UserName 已经赋值了但生成的 insert 语句竟然没有,Guid 也是。 password 没有赋值却生成了 insert

注:实体类使用了 lombok 

20190830093142916.png

ifu25 2019年08月30日

发现和命名有关系呢,问题来了。属性名小写的 username,beetlSQL 是如何知道要把 Name 变成大写的?

20190830093911256.png

ifu25 2019年08月30日

很头疼,数据库中 Guid 是主键(非自增),实体类中 Guid 字段我没有加注解,实体中也没有id字段。

于是 BeetlSQL 自动从数据库中查了下这个表的主键是 Guid,然后看到没有注解,就当成了 自增长 来对待,于是忽略了这个字段。

20190830100926131.png

继续

事实上,就算我在实体类中Guid上添加 @AssignID 注解也不行,因为我手贱定义的 Guid 属性是大写开头,这样在查找注解时连这个属性都找不到,图中的anssize依然是0

闲大赋 2019年08月30日

beetlsql默认情况下,会根据NameConversion 来做数据库名字和Java名字转化,你的这个说明了Beetlsql认为有些字段对应的属性没有(实际上你认为有,但找不到)

建议你按照java命名规范来命名属性并提供getter和setter方法,也就是符合JavaBean规范


你使用的NameConversion是什么?

  • ifu25 :确实是命名问题,我规范下命名就好了。非常感谢。~(2019年09月02日)