gpt4 book ai didi

java - hibernate/JPA 中的 @PreUpdate 和 @Prepersist(使用 session )

转载 作者:IT老高 更新时间:2023-10-28 20:55:47 27 4
gpt4 key购买 nike

我遇到了一个向现有项目添加修复程序的阻止程序。主要问题是我想使用 @Prepersist@PreUpdatePOJO照顾LastModified字段(插入和更新)使用带有 session 的 JPA 的 hibernate 实现。

原因?:由于需要使用 liquibase 1.9.5,因此需要进行该更改。我知道(因为我以前遇到过这个问题)liquibase 将时间戳转换为具有默认 current_timestamp 的日期时间,这对于 mysql 数据库来说太糟糕了。

所以我需要一种方法在代码中而不是在数据库中设置此设置,以便我可以安全地将时间戳字段更改为 datetime。然后 liquibase 很高兴,我很高兴。

现在似乎那些解释器没有被执行,几乎没有搜索我发现它适合使用 entityManager .这是目前没有问题的。所以我想知道是否有解决我的问题的简单方法,这意味着有@Prepersist@PreUpdate甚至其他解决方法来设置 lastModified字段仍在使用 session

最佳答案

Now it seems that those interpreters are not been executed, with little search i found out that it's suitable using entityManager.

是的,如果您使用 Session API,JPA 回调将不起作用。

So I'll like to know if is there a SIMPLE way around my problem, meaning having @PrePersist or @PreUpdate or even other workaround to set the lastModified field still using session

据我所知,没有简单的方法(如果您使用的是 Spring,也许可以看看 this post)。

我对基于 Hibernate 的解决方案的建议是使用 events(以及一个或多个接口(interface))。以 Hibernate and last modified date 为例。

关于java - hibernate/JPA 中的 @PreUpdate 和 @Prepersist(使用 session ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com