2009-09-21 3 views
3

Любые идеи относительно того, почему я бы получаю эту ошибку:другой объект с тем же идентификатором

nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Product#6] 

Из этого кода:

def save = {  
    def productInstance = new Product(params) 

    if(!productInstance.hasErrors() && productInstance.save()) { 
     flash.message = "Product ${productInstance.id} created" 
     redirect(action:show,id:productInstance.id) 
    } 
    else { 
     render(view:'create',model:[productInstance:productInstance]) 
    } 
} 
+1

нужно увидеть остальную часть кода, как вы оказали страницу, чтобы принять первоначальный вклад –

+0

страницы, только строительные леса в этой точке. – Thody

+0

Как выглядит объект Domain Domain? –

ответ

4

Оказалось, что проблема связана с плагином для поиска, который не позволяет индексировать более одного домена. Отключение поиска по всем классам, кроме одного, разрешило проблему.

Этот вопрос подробно в вопросе о Jira здесь: http://jira.codehaus.org/browse/GRAILSPLUGINS-601

+0

Эта проблема, кажется, возникает во многих разных контекстах. Ознакомьтесь с http://jira.grails.org/browse/GRAILS-7086?focusedCommentId=63190#comment-63190 http://jira.grails.org/browse/GPSEARCHABLE-35 –

0

Вы могли бы передавала идентификатор как часть params, и продукт с этим идентификатором, вероятно, уже существует в базе данных.

+0

Нет. Парамеры не включают идентификатор продукта, а идентификатор, который он дает в ошибке, не существует в БД до тех пор, пока форма не будет отправлена. Это похоже на попытку вставить его дважды. – Thody

+0

Можете ли вы попробовать флеш: правда, на всякий случай! – Langali