2013-08-05 3 views
11

Я использую Eclipse Facets для JPA 2.0 и Hibernate 4.2. Я думаю, что я помню, что в предыдущем проекте мне не пришлось бы регистрировать Entity Bean в файле persistence.xml. Я ошибаюсь?Должен ли каждый объект Бин быть зарегистрирован в persistence.xml?

аннотированием POJO (в данном случае Pub.java) с @Entity выбросит следующее сообщение об ошибке в окне маркера/проблемы Затмения:

Class "com.jacky.webapp.model.Pub" is managed, but is not listed in the persistence.xml file Pub.java /webapp/src/main/java/com/jacky/webapp/model  

Любые подсказки? Благодарю.

+0

Привет в вашем предыдущем проекте, где вы используете 'Spring ORM'? – iNan

+0

Нет, я этого не сделал. В общем, должен ли каждый Entity Bean быть зарегистрирован в Java EE 6 и соответствующая реализация JSR JPA? – feder

+0

Отметьте этот ответ: http://stackoverflow.com/a/21622259/1875434 – abbas

ответ

1

в jpa вам нужно скомпилировать файл с именем persistence.xml, где вы укажете Hibernate, какие классы будут управляться вашим ORM.
Проверить this question и его приняли ответ

+1

Bellabax, я заметил, что вы можете пометить классы для преодоления объектно-реляционного импеданса. Однако это декларативно, и я бы скорее применил стиль аннотации. Я только что получил подтверждение от сотрудника, что мое предположение/память истинно. Не нужно регистрировать классы вручную в peristence.xml или orm.xml, если вы используете аннотации. Предположительно, эта ошибка должна быть ошибкой Eclipse (4.3 Kepler). – feder

+0

Но ваш код работает нормально во время работы? Я думал, что у вас проблемы во время исполнения. Вероятно, вы правы и это просто проблема валидатора затмения. –

+0

Да, отлично работает при ручном развертывании (Eclipse отказывается от развертывания ошибочных WAR). Да, выглядит как ошибка Кеплера. В этот день я попробую с Юноной. – feder

33

Как уже написано здесь решение:

Проверьте вам свойство проекта JPA и обязательно выберите «Откройте для себя аннотированных классов автоматически» в разделе «Управление Persistent класса». Это должно обеспечить правильную проверку вашего варианта использования.

+0

спасибо большое, работал на меня. - @kotev –

+0

спасибо, работал для меня тоже – Toren

+0

, который сделал волшебство !! спасибо !! –

0

Возможно, когда вы создали проект, вы выбрали проект «JPA» вместо «java Project». Если вы не видите «Java Project», следуйте «другим» и под мастере введите «java», чтобы увидеть «Java Project».