如何使用;org.hibernate.envers.default“u schema”;习惯性修改实体

如何使用;org.hibernate.envers.default“u schema”;习惯性修改实体,hibernate,hibernate-envers,Hibernate,Hibernate Envers,我正在使用hibernate envers 4.2.8,并创建了我自己的CustomRevisionEntity来添加做出如下更改的用户 @Entity @RevisionEntity(CustomRevisionEntityListener.class) @Table(name = "REVINFO") public class CustomRevisionEntity { ... } 我通过添加 <prop key="org.hibernate.envers.default_sche

我正在使用hibernate envers 4.2.8,并创建了我自己的CustomRevisionEntity来添加做出如下更改的用户

@Entity
@RevisionEntity(CustomRevisionEntityListener.class)
@Table(name = "REVINFO")
public class CustomRevisionEntity {
...
}
我通过添加

<prop key="org.hibernate.envers.default_schema">myschema_audit</prop>
myschema\u审计
到我的应用程序上下文

审计表都是在schema
myschema\u audit
中创建的,但不幸的是,
REVINFO
表仍然是在默认schema
myschema
中创建的

这是因为我的
@Table
注释吗?我必须添加
schema
属性吗?如果是这样,如何在该注释中使用相应的hibernate属性

我试图省略
@Table
注释,但根本没有创建
REVINFO


如何实现在
myschema_audit
中创建
REVINFO
表?

如果省略
@table
注释,当
@table
注释不存在时,它可能会根据ORM使用的命名策略创建为
CustomRevisionEntity
或类似内容

通过指定
@Table(name=“REVINFO”,schema=“myschema_audit”)
,应将实体正确地放置在正确的模式中,并使用所需的
REVINFO


HTH.

关于使用
@表的注释,您是对的。我不想指定硬编码的模式,但希望使用相应的hibernate属性,因为它的值根据maven配置文件而变化。你知道怎么做吗?在Hibernate中没有自动化的方法可以做到这一点,因为自定义修订实体在技术上只是一个ORM实体,因此它遵循ORM规则。在本例中,Envers只是绑定到该实体中,并且知道如何在审计事件期间向其插入行。我认为您可以在编译之前应用maven资源替换过程来完成这一任务。当然,这也有其自身的缺点和问题。但是,我可以研究的一件事是,如果用户使用自定义修订实体,并将其架构/目录设置为遵循Envers规则而不是ORM规则,是否可能在Envers过程中更改修订实体的架构。您有关于那个我对多个架构和未进入正确架构的自定义审核实体也有同样的问题:(