首页 新闻 会员 周边 捐助

Mybatis使用insert时如何手动将生成的主键id设置入实体对象中?

0
[已解决问题] 解决于 2023-02-05 13:46

在Mybatis中自己编写insert标签时,如果想将数据库自动生成的主键id设置入实体对象中,只要在insert标签中添加useGeneratedKeys="true" keyProperty="id"属性就可以了。但是如果insert语句不是insert标签的第一个sql语句的话,Mybatis就不会设置实体类的主键id。在这种情况如何设置实体对象的主键id呢?

Halloworlds的主页 Halloworlds | 初学一级 | 园豆:190
提问于:2021-11-21 15:44
< >
分享
最佳答案
0

根据实际情况吧,我们现在的做法是,主键类型bigint(64),程序使用雪花算法生成,插入时设值。
当然不用每次手动设值,可以用SQL拦截insert,或者封装save方法,如果存在特定主键注解值(例如搞个@IdType),那么就生成并set到主键字段里(具体可参见MyBatis-Plus的save方法)。
还可以在MySQL中自定义一个生成主键的函数,例如f_id(),使用时:insert into table values(f_id(), xxx, xxx)。
以供参考~~

奖励园豆:5
张董 | 初学一级 |园豆:195 | 2021-11-22 00:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册