2017-02-06 13 views
0

我已經嘗試所有替代方案在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 

沒有成功以及

回答

0

可能它這樣做,因爲它創建表時沒有引號,這對於H2是指不區分大小寫的標識符。你是否需要區分大小寫的標識符?

3

對於SpringBoot 1.5.x,休眠版本是「5.x」。這意味着沒有下劃線的表的命名策略類已經改變。這應該適用於你所擁有的。

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

請注意,配置屬性名稱以及類更改。

+0

它的工作原理!我試過'spring.jpa.database-platform = org.hibernate.dialect.PostgreSQLDialect','spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.EJB3NamingStrategy'。他們都沒有工作! – Ninja