Spring Boot @Table注释,不同环境的目录属性

时间:2018-07-10 11:54:36

标签: spring hibernate spring-boot spring-data-jpa

我正在将Spring Boot与JPA一起使用来连接数据库。 我需要在实体的@Table注释中设置“目录”属性。

基本上不是问题

@MappedSuperclass
@NoArgsConstructor
@Table(catalog = "catalog_name")
public abstract class AbstractEntity

但是我必须找到简单的方法来更改目录值,因为在不同的环境下我具有不同的值。

有人能以其他方式知道如何通过例如application.properties文件而不是硬编码字符串来更改此设置吗?

对于任何解决方案我都会感激不尽。

2 个答案:

答案 0 :(得分:0)

据我所知,您不能动态编辑注释属性。看看this帖子。

也许尝试使用其自己的目录名称来拥有多个抽象实体,然后基于switch来进行application.properties property以获得正确的实体。

答案 1 :(得分:0)

也许这种方法会起作用:

  1. 向Maven个人资料添加属性
  2. 将属性catalog.name添加到.properties文件
  3. 使用Spring @PropertySource批注加载属性文件
  4. 执行以下操作:

    @Table(catalog =“ $ {catalog.name}”)