当前位置:  开发笔记 > 后端 > 正文

关于更新当前时间戳的Mysql 5.6列在hibernate中不起作用

如何解决《关于更新当前时间戳的Mysql5.6列在hibernate中不起作用》经验,为你挑选了1个好方法。

我在表格答案中有一个名为lastModified的列,如下所示

 +--------------+----------------+------+-----+-------------------+-----------------------------+
 | Field        | Type           | Null | Key | Default           | Extra                       |
 +--------------+----------------+------+-----+-------------------+-----------------------------+
 | answerId     | int(11)        | NO   | PRI | NULL              | auto_increment              |
 | totalComment | int(11)        | NO   |     | 0                 |                             |
 | totalView    | int(11)        | NO   |     | 0                 |                             |
 | totalSpam    | int(11)        | YES  |     | 0                 |                             |
 | lastModified | timestamp      | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
 +--------------+----------------+------+-----+-------------------+-----------------------------+

每当我在mysql控制台中对totalComment,totalView,totalSpam列中的任何一个进行manullay更新时,lastModifed列也会被当前时间戳修改.但是,当我使用hibernate应用程序执行相同的操作时,它不会被修改.

我的应用程序是作为spring数据jpa的一部分实现的.在application.yml中,我尝试使用org.hibernate.dialect.MySQLDialectorg.hibernate.dialect.MySQL5Dialect但没有帮助.

在我的带注释的Answer实体类中,lastModified列声明如下

@Column
private Date lastModified;

public Date getLastModified() {
    return lastModified;
}

public void setLastModified(Date lastModified) {
    this.lastModified = lastModified;
}

任何的想法 ?



1> Tim Biegelei..:

正如@Shadow所提到的,您当前的架构设计意味着您希望MySQL自动lastModified为您设置字段(on update CURRENT_TIMESTAMP).因此,如果您null从Java代码传递,那么它应该按预期工作.尝试使用updatable = false列定义中的选项告诉JPA不要向MySQL发送值:

@Column(name = "lastModified",
        updatable = false)
private Date lastModified;

我猜测当前发生的事情是Hibernate lastModified使用数据库中的值填充字段,然后你的JPA代码将这个相同的值保存回MySQL.所以似乎没有更新该值.但真正发生的是你的JPA代码正在使用相同的旧值进行更新.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有