Spring Data + SQL Server从实体类中删除架构名称

时间:2019-06-12 02:40:00

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

无论如何,是否有从类注释中删除模式并将其放在application.properties文件中的方法,因此,对于不同的环境,可以从属性文件中控制不同的模式。

注意:我正在使用MS-SQL Server数据库。

@Entity
@Table(name = "TRANSACTIONS", schema="schema_name")
public class Transaction implements Serializable {

我在下面尝试过,但是这些都不适合我。

spring.jpa.hibernate.default_schema=schema_name
spring.jpa.properties.hibernate.default_schema=schema_name
hibernate.default_schema=schema_name
spring.hibernate.default_schema=schema_name

2 个答案:

答案 0 :(得分:2)

您应在jdbc网址中指定shcema名称,如下所示。

.equals

答案 1 :(得分:0)

在继续之前,请确保已完成以下操作: 在pom.xml中添加了以下依赖关系:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

现在您需要做的就是在application.properties中指定MySQL数据库的必需凭据:

spring.datasource.url= jdbc:mysql://localhost:3306/SchemaName? 
useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username= root
spring.datasource.password= root

由于您已经在spring.datasource.url中指定了架构名称,因此您无需在任何地方再次指定。

最后,您现在可以在不指定架构的情况下使用Model Class(@Entity),如下所示:

@Entity
@Table(name = "Employee")
public class EmployeeInfo {
@Id
@Column(name = "`EMPLOYEE_NUMBER`")
private int empid;

@Column(name = "`EMPLOYEE_NAME`")
private String empname;