2017-02-06 4 views
0

Я пробовал все альтернативы в application.properties (см. Ниже). Я нашел до сих пор, но мое приложение по-прежнему создает таблицу с «_» вместо когда я установил.Весенний ботинок с hibernate, я не могу отнять имя таблицы с подчеркиванием

Любое предложение будет высоко оценено.

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; 

ПОМ

<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