Hibernate / JPA Аннотации - Неизвестный объект - PullRequest
0 голосов
/ 06 ноября 2008

Приложение, которое работало хорошо в течение нескольких месяцев, перестало собирать аннотации JPA @Entity, которые были частью его в течение нескольких месяцев. По мере выполнения моих интеграционных тестов я вижу десятки ошибок типа "org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem".

Мне не ясно, что здесь пошло не так.

У меня нет hibernate.cfg.xml файла, потому что я использую Hibernate Entity Manager. Поскольку я использую только аннотации, для моих сущностей нет файлов .hbm.xml. Мой persistence.xml файл минимален и живет в META-INF, как и положено.

Я, очевидно, что-то упускаю, но не могу понять это.

Я использую hibernate-аннотации 3.2.1, hibernate-entitymanager 3.2.1, persistence-api 1.0 и hibernate 3.2.1. hibernate-commons-annotations также является частью POM проекта, но я не знаю, насколько это актуально.

Есть ли запись web.xml, которая исчезла, или запись конфигурации Spring, которая была случайно удалена?

Ответы [ 3 ]

5 голосов
/ 14 ноября 2008

убедитесь, что вы импортируете javax.persistent.Entity, а не org.hibernate.annotations.Entity

2 голосов
/ 06 ноября 2008

Кажется, я помню, что у меня была похожая проблема.

Это длинный путь, но если вы этого еще не сделали, вы явно указали поставщика, которого используете?

<persistence ...>
   <persistence-unit ...>
      <provider>org.hibernate.ejb.HibernatePersistence</provider> <---- explicit setting
      ....
   </persistence-unit>
</persistence>

Иначе, я не уверен?

0 голосов
/ 30 декабря 2008

Это происходит для одного определенного класса (нескольких классов) или для всех классов сущностей. Файл persistence.xml содержит список файлов классов и / или jar, которые необходимо проверить на соответствие @Entity. Если это работало ранее, вы можете выполнить быстрое сравнение с версией файла persistence.xml, которая работала правильно. Другая проблема может заключаться в том, что он выбирает другой файл persistence.xml - вы можете убедиться в этом, введя ошибку (например, сделать XML недействительным) в файле persistence.xml.

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