目前不支持公式映射 - 休眠 ORM Envers

2022-09-03 01:26:23

我使用Hibernate Envers:

@Entity 
@Table(name = "user")
@Audited
class User()
{
    private String id;
    @Formula("(SELECT name FROM other c where c.id = id)")
    private Integer name;
}

它抛出:

[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Init 方法调用失败;嵌套的例外是 org.hibernate.envers.configuration.internal.metadata.FormulaNotSupportedException: 目前不支持公式映射(@DiscriminatorValue除外)

如何使用@Formula和休眠 Envers 计算实体属性?

仅供参考 当我删除Hibernate Envers时,它可以正常工作。


答案 1

问题是您要求 Envers 审核带注释的列,而该列目前不受支持。我打开JIRA HHH-11785的唯一目的是进一步研究这个问题。@Formula

但是,您应该能够对公式字段进行注释,并且 Envers 应该可以与该配置很好地集成。真正的问题是,当它发现基于公式的字段的历史记录要跟踪时,它会失败。@NotAudited

例如:

@Entity
@Audited
class User {
  @Formula("SELECT name FROM Other ...")
  @NotAudited
  private String name;
  // other attributes
}

答案 2

推荐