2010-09-29 2 views
3

Мои persistence.xml выглядит следующим образом:Почему мои аннотированные классы JPA не обнаружены неявно?

<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 

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

ответ

8

Значение в hibernate.archive.autodetection является список CSV элементов, которые autodiscovered на спящем режиме.

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

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

Чтение Далее

+0

класс достаточно, я думаю, для его случая.no hbm required –

1

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

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

Documentations

0

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

Смежные вопросы