2014-09-24 67 views
0

我在我的項目中使用了休眠ORM。 現在我映射這樣的實體:配置休眠以自動映射實體

<mapping class="entities.User"/> 

,但我必須爲我創建的每個實體做到這一點 - 有什麼我可以把Hibernate的配置,使其掃描本身在某些包裝註明實體?

謝謝

+0

你有一個替代'cfg.addAnnotatedClass(Entity.class)'',但我不認爲這種映射可以自動化。 – ares 2014-09-24 14:48:40

回答

1

您可以將所有的Java實體在JAR文件,然後提供JAR文件在Hibernate的配置文件中像這樣的路徑:

<mapping jar="path_to_your_jar_file"/> 

更新:

只有在您有用於映射的hbm.xml文件而不是在您的類上註釋時,這纔有用。這些映射文件應該是JAR文件的一部分。

看這個鏈接addJar方法Configuration類。

1

使用彈簧可以幫助您掃描包裹。看到下面的配置

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="packagesToScan"> 
      <list> 
       <value>com.tds.hibernate.entities</value> 
      </list> 
     </property> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> 
       <prop key="hibernate.current_session_context_class">thread</prop> 

      </props> 
     </property> 

    </bean>