无论如何,是否有从类注释中删除模式并将其放在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
答案 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;