Откройте аннотированные классы JPA при использовании Spring 3 + Hibernate JPA - PullRequest
4 голосов
/ 02 февраля 2011

У меня есть веб-приложение, использующее стек JPA Spring 3+.

Я хотел бы знать, есть ли способ использовать Hibernate для автоматического обнаружения аннотированных классов @Entity, чтобы я не смогдолжны перечислить их в файле persistence.xml.Мои аннотированные классы @Entity «живут» в отдельной банке, расположенной в WEB-INF / lib моего веб-приложения.

Это фрагмент моего конфигурационного файла Spring:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
   <property name="persistenceUnitName" value="mypersistence"/>
   <property name="dataSource" ref="dataSource"/>
   <property name="jpaVendorAdapter">
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
           <property name="showSql" value="true"/>
           <property name="generateDdl" value="true"/>
           <property name="databasePlatform" value="org.hibernate.dialect.DerbyDialect"/>
       </bean>
   </property>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
    <property name="url" value="jdbc:derby://localhost:1527/library;create=true"/>
    <property name="username" value="app"/>
    <property name="password" value="app"/>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<bean id="persistenceAnnotation" class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>

Ответы [ 3 ]

7 голосов
/ 02 февраля 2011

Вы можете поместить файл persistence.xml в банку, где живут ваши сущности. Тогда не нужно ничего указывать, это работает автоматически.

3 голосов
/ 04 февраля 2011

вы также можете указать свои аннотированные классы @Entity в applicationContext.xml следующим образом

<property name="packagesToScan">
     <list>
        <value>com.vattikutiirf.nucleus.domain</value>
        <value>com.vattikutiirf.nucleus.domain.generated.secondtime</value>
     </list>
  </property>

2 голосов
/ 02 февраля 2011

Отдельные файлы JAR для сканирования сущностей указываются с использованием элементов <jar-file> в persistence.xml. Итак, если вы находитесь в /WEB-INF/lib/entities.jar, вам нужно

<jar-file>lib/entities.jar</jar-file>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...