2016-03-24 26 views
1

すべてのImprovedNamingStrategyメソッドをオーバーライドしてブレークポイントに配置しましたが、メソッドはデバッグモードで呼び出されませんでした。Springを使ってHibernate Beanの命名戦略を定義する方法は?

私は休止状態のファクトリを1つしか持っていないので、間違いがあるので他のインスタンスは不可能です。

私は、問題はキー "hibernate.ejb.naming_strategy"にあると思いますか?

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"> 
    <bean id="sqlSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.${jdbc.dialect}</prop> 
       <prop key="hibernate.globally_quoted_identifiers=true">true</prop> 
       <prop key="hibernate.enable_lazy_load_no_trans">false</prop> 
       <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
       <prop key="hibernate.show_sql">{hibernate.show_sql}</prop> 
       <prop key="hibernate.ejb.naming_strategy"> 
       com.stub.utilities.dao.sql.hibernate.LowerCaseNamingStrategy 
       </prop> 
      </props> 
     </property> 
     <property name="annotatedClasses"/> 
    </bean> 
</beans> 

ポンポン

<spring.version>4.2.4.RELEASE</spring.version> 
<hibernate.core.version>5.0.7.Final</hibernate.core.version> 

答えて

4

は、Hibernate 5は、任意のImprovedNamingStrategyを持っていません。それはImplicitNamingStrategyPhysicalNamingStrategyインターフェイスを使用します。厳密に言えば、Hibernate 5.1には、例としてクラスImprovedNamingStrategyがあります。しかし、それを使用してSessionFactoryを設定することはできません。

あなたがLowerCaseNamingStrategy

Implementing a NamingStrategy in Hibernate 5 (make autogenerated column names UPPERCASE)

を実装する方法についての私の他の回答を参照することができ hibernate.implicit_naming_strategyhibernate.physical_naming_strategy特性ならびに

<bean id="sqlSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.implicit_naming_strategy"> 
        com.stub.utilities.dao.sql.hibernate.ImplicitNamingStrategy 
       </prop> 
       <prop key="hibernate.physical_naming_strategy"> 
        com.stub.utilities.dao.sql.hibernate.PhysicalNamingStrategy 
       </prop> 
      </props> 
     </property> 
     <property name="annotatedClasses"/> 
    </bean> 
</beans> 

を使用することができますImplicitNamingStrategy

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="implicitNamingStrategy"> 
     <bean class="com.github.fluent.hibernate.cfg.strategy.hibernate5.Hibernate5NamingStrategy"> 
     <property name="tablePrefix" value="spring_" /> 
     </bean> 
    </property> 
    </bean> 

を設定する例

+0

Thx、チェックして受け入れます。 – Arthur

関連する問題