2015-01-29 1 views
0

У меня есть приложение, которое выполняет следующие действия:org.hibernate.HibernateException Сообщения воссоздаются объект имеет грязную коллекцию

  1. Место приемит в сессии:

    def product = Product.get(1) 
    session["product"] = product 
    
  2. преформы и Ajax вызов для обновления 1 м, а затем отображает частичный шаблон, который отображает новые преимущества. Они не должны еще быть сохранены как пользователь может изменить свое мнение, так отбрасывать называется:

    def product = session["product"] 
    
    if (!product.isAttached()) { 
        product.attach() 
    } 
    
    product.addToBenefits(new Benefit(title: "xx")) 
    
    product.discard() 
    
    session["product"] = product 
    
  3. Попытки сохранить объект в экономии действий.

    def product = session["product"] 
    
    if (!product.isAttached()) { 
        product.attach() 
    } 
    product.save() 
    

На данный момент мы получаем следующее исключение:

org.springframework.orm.hibernate3.HibernateSystemException: reassociated object has dirty collection; nested exception is org.hibernate.HibernateException: reassociated object has dirty collection 

есть в любом случае, чтобы остановить это происходит, так что я могу повторно прикрепить объект, и сохраните его, таким образом, сохраняющиеся изменения в сборке продуктов?

ответ

0

Не храните объект в сеансе, не храните его и не перезагружайте его. Вы все равно стоите с такой стоимостью attach, поэтому вы ничего не спасаете и не вызываете этой проблемы, а также тратите память сервера, что скажется на масштабируемости.

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