我已经尝试了到目前为止发现的 application.properties 中的所有替代方案(见下文),但我的应用程序仍然使用“_”而不是我设置的驼峰式大小写创建表。
任何建议都将受到高度赞赏。
1
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.cfg.DefaultNamingStrategy
output
DefaultNamingStrategy cannot be cast to org.hibernate.boot.model.naming.ImplicitNamingStrategy
2
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.cfg.DefaultNamingStrategy
output
org.hibernate.cfg.DefaultNamingStrategy cannot be cast to org.hibernate.boot.model.naming.PhysicalNamingStrategy
3
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.DefaultNamingStrategy
output
org.hibernate.SQL : drop table tipo_dominio if exists
NOTE: no error but I didn't get the table name without "_"
4
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.EJB3NamingStrategy
output
EJB3NamingStrategy cannot be cast to org.hibernate.boot.model.naming.PhysicalNamingStrategy
我的实体
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity(name="TipoDominio")
@Table(name="TipoDominio")
public class TipoDominio implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
pom
<properties>
<main.basedir>${basedir}/../..</main.basedir>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- Compile -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
<!-- Runtime -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<version>1.4.193</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.1.RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
主要内容
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
*** 已编辑 我试过了
@SpringBootApplication(exclude={HibernateJpaAutoConfiguration.class
也没有成功
最佳答案
对于 SpringBoot 1.5.x,hibernate 版本是“5.x”。这意味着不带下划线的表的命名策略类已更改。这应该适用于您所拥有的。
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
请注意,配置属性名称以及类都发生了更改。
关于hibernate - 带 hibernate 的 Spring Boot,我无法去掉带下划线的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076121/