2013-12-05 5 views
0

Я использую Hibernate, и я получил следующее сообщение об ошибке:Ошибка: объект ссылается на несохраненный переходный экземпляр

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: db.Concern

Я создал объект Concern объекта, где я сделал следующее:

@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
@JoinColumn(name = "concernId") 
private Concern concern; 

Пожалуйста, мне нужна помощь как можно скорее. Благодарю.

+0

Предоставьте полный код и трассировку стека, который помогает решить проблему – Ramesh

+1

Похоже на ссылочного объекта не сохраняться, предоставить вам код – Greg

ответ

1

При использовании Hibernate или любого другого поставщика JPA установка cascade = CascadeType.ALL вызывает сохранение и обновление, а другие операции каскадируются до дочерних отношений.

Кроме того, по умолчанию @OneToOne отношения: FetchType.Eager. Таким образом, вы можете либо сохранить concern явно, либо вы можете удалить fetch = FetchType.LAZY из аннотации.

Возможно, вы выбрали другой объект, когда эта ошибка была выбрана. Поэтому перед сохранением этого объекта сохраните объект concern, а затем другой объект.

+0

, но как я могу сохранить Concern объект сущности – user2034269

+0

Поскольку концерн еще преходящее, и предполагая, что сеанс еще не закрыт, вы можете использовать 'session.saveOrUpdate (озабоченность);' после создания экземпляра объекта-участника. – SpartanElite

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

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