【发布时间】:2017-01-02 22:19:45
【问题描述】:
我对休眠(5.1 版)命名策略有点困惑——即它改变了我的表名,我想避免这种情况。另外 - 根据 intelij,spring.jpa.hibernate.naming_strategy 似乎已被弃用,但我找不到正确配置它的(其他)方法。
我在application.properties中有如下配置:
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.current_session_context_class=thread
如前所述,第一个被标记为已弃用。
现在我有了一个实体:
@Entity
@Table(name = "usaUploadTable", schema = "usertable201", catalog = "")
public class UsaUploadTable {
....
}
表名,如@Table(name = "")usaUploadTable。
现在当我运行我的应用程序时,我得到了
表 'usertable201.usa_upload_table' 不存在
这是正确的 - 它的名称不像 hibernate 是如何改变它的那样。
如何让 hibernate 正确使用我的表名?
编辑:
我也试过
DefaultNamingStrategy
ImprovedNamingStrategy
他们都改变了它
版本:
spring-boot-1.4.0.RELEASE
hibernate 5.1
javax-transaction-api 1.2
hibernate-validator 5.2.4
javassist 3.20
【问题讨论】:
-
这个 github 线程对 Hibernate 4 n 5 都很有用。 github.com/spring-projects/spring-boot/issues/2129
标签: java mysql spring hibernate jpa