﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java Programing Language-随笔分类-Hibernate</title><link>http://www.blogjava.net/billzhang88169/category/34225.html</link><description>Java One</description><language>zh-cn</language><lastBuildDate>Thu, 25 Sep 2008 09:27:02 GMT</lastBuildDate><pubDate>Thu, 25 Sep 2008 09:27:02 GMT</pubDate><ttl>60</ttl><item><title>NonUniqueObjectException</title><link>http://www.blogjava.net/billzhang88169/archive/2008/09/25/231153.html</link><dc:creator>bill</dc:creator><author>bill</author><pubDate>Thu, 25 Sep 2008 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/billzhang88169/archive/2008/09/25/231153.html</guid><wfw:comment>http://www.blogjava.net/billzhang88169/comments/231153.html</wfw:comment><comments>http://www.blogjava.net/billzhang88169/archive/2008/09/25/231153.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/billzhang88169/comments/commentRss/231153.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/billzhang88169/services/trackbacks/231153.html</trackback:ping><description><![CDATA[org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session<br />
<br />
首先看看这个类：<br />
<font id="SingleLineComment">//$Id: NonUniqueObjectException.java,v 1.4 2005/02/12 07:19:50 steveebersole Exp $<br />
<font id="LN">2 </font><a name="2"></a></font><font id="Package">package</font> org.hibernate;<br />
<font id="LN">3 </font><a name="3"></a><br />
<font id="LN">4 </font><a name="4"></a><font id="Import">import</font> <a href="http://kickjava.com/src/java/io/Serializable.java.htm">java.io.Serializable</a> <a href="http://kickjava.com/4196.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a>;<br />
<font id="LN">5 </font><a name="5"></a><br />
<font id="LN">6 </font><a name="6"></a><font id="Import">import</font> <a href="http://kickjava.com/src/org/hibernate/pretty/MessageHelper.java.htm">org.hibernate.pretty.MessageHelper</a>;<br />
<font id="LN">7 </font><a name="7"></a><br />
<font id="LN">8 </font><a name="8"></a><font id="FormalComment">/**<br />
<font id="LN">9 </font><a name="9"></a>&nbsp;* This exception is thrown when an operation would<br />
<font id="LN">10 </font><a name="10"></a>&nbsp;* break session-scoped identity. This occurs if the<br />
<font id="LN">11 </font><a name="11"></a>&nbsp;* user tries to associate two different instances of<br />
<font id="LN">12 </font><a name="12"></a>&nbsp;* the same Java class with a particular identifier,<br />
<font id="LN">13 </font><a name="13"></a>&nbsp;* in the scope of a single &lt;tt&gt;Session&lt;/tt&gt;.<br />
<font id="LN">14 </font><a name="14"></a>&nbsp;*<br />
<font id="LN">15 </font><a name="15"></a>&nbsp;* @author Gavin King<br />
<font id="LN">16 </font><a name="16"></a>&nbsp;*/</font><br />
<font id="LN">17 </font><a name="17"></a><font id="Public">public</font> <font id="Class">class</font> NonUniqueObjectException <font id="Extends">extends</font> <a href="http://kickjava.com/src/org/hibernate/HibernateException.java.htm">HibernateException</a> {<br />
<font id="LN">18 </font><a name="18"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Private">private</font> <font id="Final">final</font> <a href="http://kickjava.com/src/java/io/Serializable.java.htm">Serializable</a> <a href="http://kickjava.com/4196.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> identifier;<br />
<font id="LN">19 </font><a name="19"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Private">private</font> <font id="Final">final</font> <a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> entityName;<br />
<font id="LN">20 </font><a name="20"></a><br />
<font id="LN">21 </font><a name="21"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Public">public</font> NonUniqueObjectException(<a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> message, <a href="http://kickjava.com/src/java/io/Serializable.java.htm">Serializable</a> <a href="http://kickjava.com/4196.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> id, <a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> clazz) {<br />
<font id="LN">22 </font><a name="22"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="Super">super</font>(message);<br />
<font id="LN">23 </font><a name="23"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="This">this</font>.entityName = clazz;<br />
<font id="LN">24 </font><a name="24"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="This">this</font>.identifier = id;<br />
<font id="LN">25 </font><a name="25"></a>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<font id="LN">26 </font><a name="26"></a><br />
<font id="LN">27 </font><a name="27"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Public">public</font> NonUniqueObjectException(<a href="http://kickjava.com/src/java/io/Serializable.java.htm">Serializable</a> <a href="http://kickjava.com/4196.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> id, <a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> clazz) {<br />
<font id="LN">28 </font><a name="28"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="This">this</font>(<font id="StringLiteral">"a different object with the same identifier value was already associated with the session"</font>, id, clazz);<br />
<font id="LN">29 </font><a name="29"></a>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<font id="LN">30 </font><a name="30"></a><br />
<font id="LN">31 </font><a name="31"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Public">public</font> <a href="http://kickjava.com/src/java/io/Serializable.java.htm">Serializable</a> <a href="http://kickjava.com/4196.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> getIdentifier() {<br />
<font id="LN">32 </font><a name="32"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="Return">return</font> identifier;<br />
<font id="LN">33 </font><a name="33"></a>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<font id="LN">34 </font><a name="34"></a><br />
<font id="LN">35 </font><a name="35"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Public">public</font> <a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> getMessage() {<br />
<font id="LN">36 </font><a name="36"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="Return">return</font> <font id="Super">super</font>.getMessage() + <font id="StringLiteral">": "</font> +<br />
<font id="LN">37 </font><a name="37"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageHelper.infoString(entityName, identifier);<br />
<font id="LN">38 </font><a name="38"></a>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<font id="LN">39 </font><a name="39"></a><br />
<font id="LN">40 </font><a name="40"></a>&nbsp;&nbsp;&nbsp;&nbsp;<font id="Public">public</font> <a href="http://kickjava.com/src/java/lang/String.java.htm">String</a> <a href="http://kickjava.com/777.htm"><img alt="JavaDoc" src="http://kickjava.com/cmn/javadoc.gif" border="0" /></a> getEntityName() {<br />
<font id="LN">41 </font><a name="41"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font id="Return">return</font> entityName;<br />
<font id="LN">42 </font><a name="42"></a>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<font id="LN">43 </font><a name="43"></a><br />
<font id="LN">44 </font><a name="44"></a>}<br />
<br />
<br />
解决方案：<br />
&nbsp;&nbsp;&nbsp;&nbsp; this..getSession().clear();<br />
<img src ="http://www.blogjava.net/billzhang88169/aggbug/231153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/billzhang88169/" target="_blank">bill</a> 2008-09-25 17:07 <a href="http://www.blogjava.net/billzhang88169/archive/2008/09/25/231153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>