我使用Hibernate Envers创建了一个自定义的REVINFO实体。该实体是:
@Entity
@RevisionEntity(AuditRevisionListener.class)
@Table(name = "envers_info", catalog = "another_catalog")
public class AuditEnversInfo extends DefaultRevisionEntity {
@Column(name = "user_id")
private String userId;
}
我的问题是,如何基于外部配置文件(例如SpringBoot中的application.properties值)替换@Table批注上的catalog字段的值? 我希望它是动态的,所以一旦我将外部配置文件更改为另一个目录/架构,它将自动更改其目录/架构以保留审核的记录。
答案 0 :(得分:0)
Envers允许您通过指定两个值之一来通过配置来设置此值,具体取决于数据库平台的实现。
org.hibernate.envers.default_schema
org.hibernate.envers.default_catalog
由于您已确定数据库平台要使用 catalog 配置而不是 schema 配置,因此只需在常规的休眠属性配置文件中提供此配置即可
org.hibernate.envers.default_catalog=another_catalog
您可以在许多地方定义此配置
application.yml
使用的application.properties
或spring-boot
文件中。Session
或EntityManager
工厂的spring应用程序的Java配置中。hibernate.properties
文件中。