JPA实体:如何检查实体是否已被持久化?
检查ID:
实体ID可以在持久化之前由用户设置。所以它不可靠。
检查版本:
实体不需要版本。
em.contains(实体)
如果实体已分离,则返回false。
答案 0 :(得分:0)
您可以在使用@PostPersist
注释的侦听器方法中使用记录器。检查this以获取更多信息
答案 1 :(得分:0)
JPA的save
方法返回 can never
为null
的持久化实体。
您只需null
检查以查找给定实体是否保持不变。
User user = userRepository.save(new User(FIRSTNAME, LASTNAME));
if(user != null) {
//User entity is successfully persisted.
}
来自docs
<S extends T> S save(S entity)
保存给定的实体。使用返回的实例进行进一步操作 因为保存操作可能已经更改了实体实例 完全。
参数:entity - 不能为null。
返回:保存的实体永远不会为空。