【发布时间】:2016-07-19 05:30:46
【问题描述】:
我正在尝试将 spring-data-rest 与 MySql 一起使用,并将 hibernate 作为 JPA 提供程序。
我希望查询中使用的表名与类的简单名称相匹配;而已。我如何做到这一点?
我已经尝试了所有的命名策略,但似乎都没有效果。另外,我加了
@Table("Foo")
它也会小写
这是错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 表 'TEST.worker' 不存在
这是实体:
@Entity
public class Worker {
private Long id;
private String givenName;
private String familyName;
private LocalDate dob;
private String nationalId;
private byte[] photo;
public Worker() {
this.id = Math.abs(new Random().nextLong());
}
@Id
@Column(name = "ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Basic
@Column(name = "GivenName")
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
@Basic
@Column(name = "FamilyName")
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
@Basic
@Column(name = "DOB")
public LocalDate getDob() {
return dob;
}
public void setDob(LocalDate dob) {
this.dob = dob;
}
@Basic
@Column(name = "NationalID")
public String getNationalId() {
return nationalId;
}
public void setNationalId(String nationalId) {
this.nationalId = nationalId;
}
@Basic
@Column(name = "photo")
public byte[] getPhoto() {
return photo;
}
public void setPhoto(byte[] photo) {
this.photo = photo;
}
}
我的相关配置:
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.show-sql=true
spring.jpa.generate-ddl = false
spring.jpa.hibernate.ddl-auto = none
spring.jpa.hibernate.naming-strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy
来自 spring 数据的传递依赖:
[INFO] | +- org.hibernate:hibernate-entitymanager:jar:4.3.11.Final:compile
[INFO] | | +- org.hibernate:hibernate-core:jar:4.3.11.Final:compile
[INFO] | | +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final:compile
[INFO] | | \- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
This link 不适用;
【问题讨论】:
-
查看this 的帖子。这可能会有所帮助。
-
this question 中提供的任一解决方案都适合您吗?
-
你使用哪个 Hibernate 版本?
-
@Chatoyancy 实际上是的。我自己无意中偶然发现了它,但您的链接有效。如果您愿意,可以将其作为答案提供。我基本上回溯了堆栈以弄清楚它是如何到达该表名的,并使用了一些来自 intellij 的自动完成来到达那里。我没有早点找到它,因为我似乎问错了问题,它引导我找到与操作系统相关的答案。
标签: java hibernate jpa spring-data-jpa spring-data-rest