2013-09-26 4 views
0

У меня есть система работает на Apache Tomcat 7 (7.0.34, если это делает никакой разницы) с отображением со свойством, как этотПочему спящий режим перестает работать через некоторое время?

@OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST,CascadeType.MERGE}) 
@JoinTable(name = "device_document", 
    joinColumns = {@JoinColumn(name = "device_id", referencedColumnName = "device_id")}, 
    inverseJoinColumns = @JoinColumn(name = "document_id", referencedColumnName = "id")) 
public Set<Document> getDocuments() { 
    return documents; 
} 

Когда я призываю мое сохранить функцию он работает хорошо, но через некоторое время тот же самый код, с теми же данными Выдает исключение

unsaved transient instance - save the transient instance before flushing 

И продолжает бросать это исключение каждый раз, когда я пытаюсь сохранить экземпляр до (иногда) я не перезапустить службу TOMCAT.

У вас есть какие-либо идеи относительно того, почему это происходит?

+0

обычные сообщения о «несохраненной ошибке переходного экземпляра» читают это о каскадировании, но уже пытались установить CascadeType для всех, и это то же самое –

ответ

0

Какой метод вы используете для сохранения? saveOrUpdate?

Он бросает «несохраненный экземпляр переходного процесса» только при добавлении Documents к уже сохраняющемуся родительскому объекту?

Постарайтесь добавить CascadeType.UPDATE в свою аннотацию OneToMany.

+0

Я использую saveOrUpate, и это происходит в обоих случаях при добавлении нового родитель с добавленными документами или обновлением некоторого родителя, уже сохраненного, я попробую CascadeType обновить, чтобы проверить, работает ли это, но сегодня я обнаружил, что мой makePersistent делает flush после выполнения saveOrUpdate, поэтому я постараюсь сделать флеш до этого –

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