почему мои аннотированные JPA классы не обнаруживаются неявно? - PullRequest
3 голосов
/ 29 сентября 2010

Мой persistence.xml выглядит так:

<persistence>
  <persistence-unit name="test">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.XXX.Abc</class>
    <properties>
      <property name="hibernate.archive.autodetection" value="true" />
      ..
    </properties>
  </persistence-unit>
<persistence>

Все отлично работает. Когда я удаляю директиву <class>, я получаю исключение из EntityManager.find(Abc.class, 1):

java.lang.IllegalArgumentException: Unknown entity: com.XXX.Abc

Похоже, что hibernate не может обнаружить мои аннотированные классы, хотя я использую @Entity .. Почему?

Ответы [ 3 ]

8 голосов
/ 29 сентября 2010

Значение hibernate.archive.autodetection - это список csv-элементов, которые автоматически обнаруживаются hibernate.

Попробуйте вместо этого:

<property name="hibernate.archive.autodetection" value="class, hbm"/>

Дополнительная литература

1 голос
/ 29 сентября 2010

Попробуйте сделать это .. как это

<property name="hibernate.archive.autodetection" value="class" />   

Documentations

0 голосов
/ 07 февраля 2013

Я думаю, что Hibernate ищет классы в том же источнике кодов, что и persistence.xml. Так, например, если у вас есть файл persistence.xml в папке, а классы - в отдельном банке, Hibernate не найдет их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...