2016-05-17 63 views
1

假設我有許多模型類(實體類)。我需要陸續喜歡我是否需要在休眠配置文件中註冊所有模型類

... 
<mapping class="com.java.ent.Table"/> 
... 

登記在休眠的配置文件之一,所有的模型類或任何註釋是有其作爲實體分數呢?對於中型應用程序,將會有大量的表格及其相應的模型實體。如何管理它?

+0

我不太瞭解Hibernate。問題是你是否願意使用由Hibernate實現的JPA;在這種情況下,你不需要列出所有的類。這種方式在Hibernate文檔中也是**高度推薦的。 – ujulu

回答

0

還有另一種配置hibernate sessionFactory的方式,你可以在其中只提供packageToScan。

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"></property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> 
       <prop key="hibernate.connection.useUnicode">true</prop><!-- added --> 
       <prop key="hibernate.connection.characterEncoding">UTF-8</prop><!-- added --> 
       <prop key="hibernate.connection.charSet">UTF-8</prop><!-- added --> 

      </props> 
     </property> 

     <property name="packagesToScan"> 
      <list> 
       <value>com.web.entities</value> 
      </list> 
     </property> 
    </bean> 
+0

謝謝你,它的工作原理! – Joe

0

您可以在AnnotationConfiguration中編寫自己的套件包,如描述中所述。

https://docs.jboss.org/hibernate/stable/annotations/reference/en/html/ch01.html

或者

另一種方法是編寫自定義AnnotationConfigurationWithWildcard它擴展了org.hibernate.cfg.AnnotationConfiguration並注入彈簧依賴。

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfigurationWithWildcard"/> 
    <property name="configLocation" value="classpath:hibernate.cfg.xml"/> 
</bean> 

您可以使用哪個更適合您更好。

+0

但是我必須像我提到的那樣在hibernate.cfg.xml中註冊實體。沒有它的任何方式是我的意思是任何註釋? – Joe

+0

如果我的問題是正確的,那麼使用上述解決方案,您只需將包裝放在所有實體所在的位置,並且休眠將選擇所有註釋的實體。在第二種方法中,您可以簡單地在hibernate.cfg中添加一行像的通配符。希望澄清。 –

+0

AnnotationConfigurationWithWildcard我得到的類沒有找到excp ...與也同樣excp。我使用Hibernate4 – Joe