7

Spring (Boot) を使用して REST Web サービスを構築しており、xml 構成なしで hibernate を orm マッパーとして使用しようとしています。

基本的には動作するようになりましたが、構成の問題で立ち往生しています。@Configuration ファイルのLocalContainerEntityManagerFactoryBeanようにインスタンス化します。@Bean

次の例のように設定hibernate.ejb.naming_strategyします->テーブルが存在しない場合(列名は@Entityクラスのようにキャメルケースです)、テーブルを作成するために機能するようですが、クエリが実行されると、休止状態はこの命名構成を「忘れ」、 under_score_attributes で別の種類の命名戦略を使用しようとします --> 明らかに、これらのクエリは失敗します。設定する必要がある他のプロパティはありますか?

または、好ましくはまたはを追加せずにプロパティを構成する別の方法?cfg.xmlpersistence.xml

LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();   
Properties props = new Properties();
props.put("hibernate.hbm2ddl.auto", "create");
props.put("hibernate.ejb.naming_strategy","org.hibernate.cfg.DefaultNamingStrategy");
lef.setJpaProperties(props); 
lef.afterPropertiesSet();
4

3 に答える 3

22

HibernateJpaAutoConfigurationネーミング戦略 (および他のすべての JPA プロパティ) をローカルの外部構成を介して設定できます。たとえば、application.properties次のようになります。

spring.jpa.hibernate.ddl_auto: create
spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.EJB3NamingStrategy
于 2013-11-04T14:39:51.860 に答える
0

プログラムのプロパティを使用して、この特定のプロパティを設定しようとしましたか? それともhibernate.propertiesパッケージルートのファイルですか? それとも JVM システム プロパティですか? ここにすべてが記載されています。

私の経験から、XML を一切使用しないと主張する場合 (私の好みでもあります)、Hibernate の問題を診断するのが難しい場合があります。他に何も機能しない場合は、少なくとも構成ファイルを定義する必要があります。

于 2013-10-29T13:43:47.110 に答える
-2

私は今解決策を得ました。

@EnableAutoConfiguration(exclude={HibernateJpaAuto Configuration.class}) 

JpaAutoConfiguration を除外する必要があります。それでも、これはバグである可能性があると思います。通常、独自の @Configuration を使用すると、自動的に「後退」するはずです。

于 2013-10-29T14:22:14.277 に答える