【问题标题】:jpa Hibernate make schema name configurable in Entity classjpa Hibernate 使模式名称在实体类中可配置
【发布时间】:2019-01-25 21:53:35
【问题描述】:

我正在开发一个简单的 Spring Boot 应用程序,其中 jpa + Hibernate 是用于访问我的数据源的用户,即 Oracle DB。实体类如下。

    @Entity
    @Table(name="MY_SCHEMA.MY_DB") 
    public class Member implements Serializable {
    .............
    }

目前我的项目没有任何persistence.xml。问题是,我需要使 @Table 注释中的架构名称(MY_SCHEMA)可配置,即在运行时从 application.properties 文件中获取架构值。

我尝试在 application.properties 文件中添加spring.jpa.properties.hibernate.default_schema=schema 选项。但一切都是徒劳的。

更新

在另一个问题Hibernate how to make schema name configurable for entity class中添加了更多详细信息

【问题讨论】:

  • 为什么将模式名称作为表名的一部分,而不是表名的一部分? @Table 有“模式”

标签: spring oracle hibernate jpa jpa-2.0


【解决方案1】:

以下是可用于在特定模式中创建表的可用选项。在架构字段中提及架构名称。

@Entity
@Table(name = "MY_TABLE_NAME", schema= "MY_SCHEMA_NAME")
public class Myclass {

您还可以使用 application.properties 文件在 DB URL 中定义模式名称,如下所示。您需要根据需要更新值。

 spring.datasource.url=jdbc:mysql://localhost:3306/MY_SCHEMA_NAME?autoReconnect=true&useSSL=false

【讨论】:

  • 你能把你试过的代码分享给我吗?
猜你喜欢
  • 2019-02-01
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 2011-02-13
  • 2016-03-31
  • 2020-09-04
  • 2023-01-07
  • 2017-03-19
相关资源
最近更新 更多