我在我的項目中使用了休眠ORM。 現在我映射這樣的實體:配置休眠以自動映射實體
<mapping class="entities.User"/>
,但我必須爲我創建的每個實體做到這一點 - 有什麼我可以把Hibernate的配置,使其掃描本身在某些包裝註明實體?
謝謝
我在我的項目中使用了休眠ORM。 現在我映射這樣的實體:配置休眠以自動映射實體
<mapping class="entities.User"/>
,但我必須爲我創建的每個實體做到這一點 - 有什麼我可以把Hibernate的配置,使其掃描本身在某些包裝註明實體?
謝謝
您可以將所有的Java實體在JAR
文件,然後提供JAR
文件在Hibernate的配置文件中像這樣的路徑:
<mapping jar="path_to_your_jar_file"/>
更新:
只有在您有用於映射的hbm.xml文件而不是在您的類上註釋時,這纔有用。這些映射文件應該是JAR文件的一部分。
看這個鏈接addJar方法Configuration
類。
使用彈簧可以幫助您掃描包裹。看到下面的配置
<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>
你有一個替代'cfg.addAnnotatedClass(Entity.class)'',但我不認爲這種映射可以自動化。 – ares 2014-09-24 14:48:40