【问题标题】:Requery JPA Entity field after save, update or flush because of db trigger由于数据库触发器,在保存、更新或刷新后重新查询 JPA 实体字段
【发布时间】:2023-02-07 03:23:09
【问题描述】:

我有一个简单的 JPA 实体,它具有特定的行为。 他的属性之一是由数据库触发器生成的。

所以我宣布

@Column(nullable = false, unique = true, length = 15, insertable = false, updatable = false)
private Long numberToRead;

现在每次我们保存或更新实体时,触发器都会被触发,此时我们需要读取 numberToRead 的新值。

在使用 HBM 文件之前我们可以这样做

<property not-null="true" unique="true" length="15" column="numberToRead" type="java.lang.Long" name="numberToRead" generated="insert" insert="false" update="false" />

但过了一段时间,我找不到用 JPA 等效项替换此 Hibernate 行为的解决方案。

任何想法 ?

我正在尝试使用这些注释,但没有任何效果

@GeneratedValue(generator = "numberToRead_insert_update")
@GenericGenerator(name = "numberToRead_insert_update", strategy = "select")

【问题讨论】:

    标签: hibernate jpa triggers


    【解决方案1】:

    使用@Generated(INSERT),这个注解定义在org.hibernate.annotations中。

    或者,显式调用 refresh()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 2018-04-20
      • 1970-01-01
      • 2016-02-22
      • 2014-08-13
      • 1970-01-01
      • 2012-10-26
      相关资源
      最近更新 更多