关于 Mybatis 在 insert 之后 timestamp 依旧为 null 的问题,求解谢谢!

2018-04-08 09:48:38 +08:00
 AllOfMe

最近刚接触 MyBatis,遇到 id 不能自增的问题已经有 selectedKey 来解决了,但是像 create_time 这种 timestamp 默认值为 CURRENT_TIMESTAMP 的,在 insert 之后依旧为 null,请问各位有啥好办法吗?谢谢

5804 次点击
所在节点    Java
26 条回复
AllOfMe
2018-04-08 13:46:06 +08:00
@night98 数据库的 createTime 是 not null 并且默认值为 CURRENT_TIMESTAMP,xml 文件的 insert 语句里面是有带 createTime 的, 而且我用 mapper.insert(user)之后,数据库也是有正常的非 null 值。现在问题是,插入是成功了,数据库也是正常的,但是 insert(user)这个 user 的 pojo 实例后,该 pojo 实例的 createTime 的值为空,我希望 insert 之后能让 mybatis 自动给 pojo 的 createTime 赋值
night98
2018-04-08 13:48:36 +08:00
@AllOfMe #21 那就只能再查一次,我记得 mybatis 默认只支持 id 插入后 getid()
AllOfMe
2018-04-08 14:29:00 +08:00
@night98 好的,谢谢
choice4
2018-04-08 19:28:00 +08:00
user = UserMapper.selectByPrimaryKey(user.getId())。。。不要打我
flight2006
2018-04-08 20:44:19 +08:00
用 insertSelective 方法,insert 方法会用你的实体所有字段包括 null 的
tedzhou1221
2018-04-09 06:25:39 +08:00
说个题外话,好像 Mysql5.7 开始时间类字段不能为 null,以前版本的数据导过来可能会有问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/444973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX