java - 持久化实体时如何从不可更新字段的数据库返回值?

标签 java hibernate jpa

如何让 Hibernate 在保存实体时返回持久化对象的实际属性值?

Entity {
   @Column(name = "name", updatable = false)
   private String someProperty;

   ...
}

在保存一个实体对象时,我希望返回对象具有“忽略”字段的持久值,而不是已保存对象的值。

最佳答案

您可以使用EntityManager.refresh():

entityManager.merge(entity);   // update entity
entityManager.flush();         // invoke SQL to insert updated data
entityManager.refresh(entity); // reload ignored fields

它应该将标记有 updatable = false 的字段更新为持久值

关于java - 持久化实体时如何从不可更新字段的数据库返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45280930/

相关文章:

java - Hibernate createSQLquery 的无效列名错误

java - JPQL 查询不起作用

java - spring中sql查询失败如何回滚事务

java - - java.lang.NullPointerException - 空对象引用上的 setText

java - 使用另一个类的字段类型实例化参数化类

java - 接收 : How to get the last element even if onError was called?

mysql - 使用生成的主键引用表

java - Hibernate 不创建表 - Spring MVC

java - JPA 映射 - 关系中的复合键

java - 如何显示Gradle JavaExec任务的log4j输出?