【发布时间】:2014-10-06 15:18:38
【问题描述】:
我有一个依赖 spring-boot-starter-data-jpa 的 Spring Boot 应用程序。我的实体类有一个带有列名的列注释。例如:
@Column(name="TestName")
private String testName;
由此生成的 SQL 创建了 test_name 作为列名。寻找解决方案后发现spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy解决了问题(列名取自列注解)。
不过,我的问题是为什么没有将naming_strategy 设置为EJB3NamingStrategy JPA 会忽略列注释?也许hibernate方言与它有关?我正在连接到 MS SQL 2014 Express,并且我的日志包含:
Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect
【问题讨论】:
-
这个问题是关于明确提供的列名被更改而不是忽略。它归结为this 被执行而不是预期的transparent variant。 Hibernate 实际上可能会忽略
@Column(name="...")注释,例如当您使用非预期访问类型时,但这里不是这种情况。
标签: java hibernate jpa spring-boot