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



我正在使用带有JPA的Spring Boot来连接我的数据库。 我需要在实体@Table注释中设置"目录"属性。

基本上不是问题

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

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

有谁知道任何其他方法如何通过例如 application.properties 文件而不是硬编码字符串来更改它?

我将不胜感激任何解决方案。

据我所知,您无法动态编辑注释属性。看看这篇文章。

也许尝试使用自己的目录名称创建多个抽象实体,并根据application.properties property进行switch以获得正确的目录。

也许这种方法会奏效:

  1. 将属性添加到 maven 配置文件
  2. 将属性 catalog.name 添加到 .properties 文件
  3. 使用 Spring @PropertySource注释加载属性文件
  4. 做这样的事情:

    @Table(catalog = "${catalog.name}")

最新更新