2012-02-18 3 views
3

Я использую Spring-3.0.5 и Hibernate-3 для проекта, над которым я работаю. Я периодически получаю «org.hibernate.MappingException: Неизвестный объект:» только для таблицы домена «user_roles», и это тоже, только когда я пытаюсь вставить запись в эту таблицу. Все объекты домена использование «javax.persistence.Entity» и не «org.hibernate.annotations.Entity», который обычно является причиной этой ошибки. Компоненту «sessionFactory» было предоставлено значение «packagesToScan». Уборка и строительство проекта не помогли. Удивительно при развертывании Tomcat Я вижу следующие строки на консоли:intermittently get org.hibernate.MappingException: Неизвестный объект:

[AnnotationBinder] Binding entity from annotated class: UserRole 

[EntityBinder] Bind entity UserRole on table user_roles 

так же, как для всех других классов предметной области.

(Этот вопрос, как представляется, является точной копией another question, который не был дан ответ еще.)

Любая помощь очень ценится.

Спасибо.

ответ

2

Исправлено. Проблема была в моем коде. Я сохранил объект пользователя и сохранял связанные с ним user_roles отдельно без обновления пользовательского объекта, то есть я сделал session.save (userRoles), не выполняя user.setUserRoles (userRoles). Теперь я изменил код, чтобы сначала установить userRoles в пользователе, а затем просто сохранить объект пользователя, который также сохраняет роли пользователя. Желание спящего режима было немного более последовательным в поведении, а сообщение об ошибке немного дружелюбнее :)

Спасибо.