当前位置: 首页 > 面试题库 >

JPA的最新更新时间戳

巫马浩言
2023-03-14
问题内容

我在玩JPA(具体来说是Eclipselink)。下面的实体具有一个时间戳,应该在该实体上次更新时反映该时间戳。

每次更改此实体时,使JPA自动更新该时间戳的策略是什么?

如果我还想要一个“创建”时间戳记,该时间戳记仅在实体首次保留时设置,而永远不允许再次更改,该怎么办?

 @Entity
 public class Item implements Serializable {
     private static final long serialVersionUID = 1L;
     private Integer id;
     private String note;


    public Item () {
    }


    @Id
    @GeneratedValue(strategy=SEQUENCE)
    @Column(unique=true, nullable=false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    @Column(length=255)
    @Column(nullable=false)
    public String getNote() {
        return this.note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    @Column(nullable=false)
    public Timestamp getUpdated() {
        return this.updated;
    }

    public void setUpdated(Timestamp updated) {
        this.updated = updated;
    }


}

问题答案:

使用@PrePersist和@PreUpdate批注并编写您自己的事件侦听器。

详细了解一下此答案。它被标记为Hibernate,但适用于任何JPA提供程序



 类似资料:
  • 问题内容: 在页面的页脚中,我想添加诸如“最后更新xx / xx / 200x”之类的内容,该日期为最后一次更新某些mySQL表的时间。 最好的方法是什么?有检索上次更新日期的功能吗?每次需要此值时都应该访问数据库吗? 问题答案: 在更高版本的MySQL中,您可以使用数据库来告诉您何时更新了另一个表: 当然,这确实意味着要打开与数据库的连接。 另一种选择是每当更新MySQL表时“触摸”特定文件:

  • 问题内容: 嗨,我开始开发一个Android应用程序,该应用程序将使用一个可容纳多个表的SQLite数据库。我想知道的是特定表的最后更新时间,因为某些数据不需要在一个星期内进行更新,而其他表则需要每隔几个小时更新一次。尝试节省带宽并创建响应速度更快的应用程序。不知道是否有用于此的命令(似乎什么也找不到),或者我是否应该在每个表中添加具有当前时间和日期的字段,并使用System.currentTim

  • 问题内容: 我在mysql表中具有属性为“ ON UPDATE CURRENT_TIMESTAMP”的时间戳。有没有办法在特殊情况下手动禁用更新时间戳?(例如:更新条目以修改博客文章,但不重新添加日期) 问题答案: 有没有办法在特殊情况下手动禁用更新时间戳?(例如:更新条目以修改博客文章,但不重新添加日期) 听起来您需要配置默认约束,以便仅在插入时填充列: 将其更改为仅这意味着任何修订都不会触发时

  • Updated可以让您在记录插入或每次记录更新时自动更新数据库中的标记字段为当前时间,需要在xorm标记中使用updated标记,如下所示进行标记,对应的字段可以为time.Time或者自定义的time.Time或者int,int64等int类型。 type User struct { Id int64 Name string UpdatedAt time.Time

  • 的结果是一个元素流-因此,我希望从这个流中获得一个“具有最高计数的key”的更新流。 然后我通过一个常量(-因为这是一个全局操作)进行键控,并使用-这几乎可以实现:我得到一个最高计数流,但当前的最高计数是针对每个元素发出的。 我想我要找的是某种带有前一个值的过滤器,它只会在新值与前一个值不同时才会发出元素。 目前在Flink有可能吗?

  • 这是我的模型: 方法如下: 这是错误我得到当我尝试启动Spring应用程序 未能 在项目 licenta 上执行目标 org.springframework.boot:spring-boot-maven-plugin:1.5.9.RELEASE:run(default-cli) 在项目 licenta 上:运行时发生异常。 null: InvocationTargetException: 创建名为