2017-01-29 11 views
0

私のspringブートプロジェクトは、エンティティクラスでJPA hibernateアノテーションを使用しています。 私は自分の汎用リポジトリを持っており、私はNOT JPAのentityManagerFactoryからHibernate SessionFactoryを取得しています。 新しいテーブルと列が作成されると問題が発生します。キャメル列は、データベース上でアンダースコアで作成されます。 の名前付け方法をorg.hibernate.cfg.EJB3NamingStrategyに変更しましたが、何も修正されていません。Hibernate 5のネーミング戦略を変更する+ spring boot + anootation

application.yml:

jpa: 
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect 
    show-sql: true 
    hibernate: 
     ddl-auto: update 
     naming-strategy: org.hibernate.cfg.EJB3NamingStrategy 

は(EntityManagerを使用していない)私自身の一般的なリポジトリにHibernateセッションを取得するには:

@Autowired 
public SessionFactory sessionFactory; 

public Session getSession() { 
    try { 
     return sessionFactory.getCurrentSession(); 
    } catch (HibernateException e) { 
     System.out.println(e.getMessage().toString()); 
    } 
    return sessionFactory.openSession(); 
} 

iはImplicitNamingStrategyJpaCompliantImpl何も起こっを拡張するカスタムNamingStrategyをを作成するために使用されます!

何が間違っていますか?

What i want:

データベースでラクダに作成された列。テーブルも!あなたがここに見ることができるように

spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name. 
spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name. 

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties

+0

をここに参照してください:Hibernateは5で –

答えて

1

は、あなたが別のプロパティを使用する必要がありますhttps://github.com/spring-projects/spring-boot/issues/2129
+0

物理戦略に言及するだけでも問題なく動作します –

関連する問題