我使用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;
}
它扔了:
[组织/ springframework的/引导/自动配置/ ORM / JPA / HibernateJpaAutoConfiguration.class]: 调用init方法失败;嵌套异常是 org.hibernate.envers.configuration.internal.metadata.FormulaNotSupportedException: 目前没有公式映射(除了@DiscriminatorValue) 支持的
如何使用@Formula和Hibernate Envers计算实体属性?
仅供参考当我删除Hibernate Envers时,它可以正常工作。
答案 0 :(得分:13)
问题在于您要求Envers审核@Formula
带注释的列,目前不支持该列。我打开了JIRA HHH-11785的唯一目的是为了进一步研究这个问题。
但是,您应该能够使用@NotAudited
注释公式字段,并且Envers应该与该配置完全集成。真正的问题是当它发现要跟踪基于公式的字段的历史时它会失败。
举个例子:
@Entity
@Audited
class User {
@Formula("SELECT name FROM Other ...")
@NotAudited
private String name;
// other attributes
}