JPA 在注释中使用变量架构名称

use*_*555 5 java hibernate jpa database-schema

我使用 Java Persistence API 来描述我将在代码中操作的数据库中的表。

但是,所使用的架构并不相同,具体取决于我的项目的安装位置。因此,当我使用注释时,我希望 SCHEMA 字段是一个变量,但我无法做到:

@Entity
@Table(name = "TABLE_NAME", schema = schemaVariable, catalog = "")
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?是否可以使用persistence.xml文件?

小智 0

恕我直言,将模式信息(如表、列、模式名称)放入 java 类中任何时候都是一个坏主意(如果您想在其他地方部署,则强制重新编译)。您可以将该信息放入orm.xml并根据您的部署要求部署不同的orm.xml依赖项。

至于persistence.xml您将依赖于您的 JPA 提供程序具有定义默认架构/目录的持久性属性。我知道 DataNucleus JPA (我使用的)有这个,但不知道 Hibernate