首页 > 解决方案 > jpa Hibernate 使模式名称在实体类中可配置

问题描述

我正在开发一个简单的 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 文件中获取模式值。

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

更新

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

标签: springoraclehibernatejpajpa-2.0

解决方案


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

@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

推荐阅读