@Table(name = "REVINFO", catalog= "another_catalog") 的目录值可以替换为外部配置文件的值吗?
Can catalog value of @Table(name = "REVINFO", catalog= "another_catalog") be replaced by external config file's value?
我正在使用 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/schema,它将自动更改其 catalog/schema 以保留审计记录。
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
。
- 在您的 spring 应用程序的 java 配置中
Session
或 EntityManager
工厂。
- 在应用程序 class 路径根目录中的
hibernate.properties
文件中。
我正在使用 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/schema,它将自动更改其 catalog/schema 以保留审计记录。
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
。 - 在您的 spring 应用程序的 java 配置中
Session
或EntityManager
工厂。 - 在应用程序 class 路径根目录中的
hibernate.properties
文件中。