ここで私は自分の自己学習冬眠と個人実験プロジェクトで、より理解を深めています。 ここに私の環境の記述があります: 私は全てのモデルがfrom.itを継承するスーパーモデルエンティティを持っています。idプロパティは です。私はhibernate WebサイトにあるgenericDAOパターンを使用します。 私の問題は、私は1対多マッピング(ここでは重複を避ける必要はありません)とリストインデックスまたはリストインデックスプロパティのスーパーエンティティIDを参照するときに、このエラーが発生しました: org.hibernate.NonUniqueObjectException:同じ識別子の値を持つ異なるオブジェクトがすでにここでセッション と関連していたが、スーパーエンティティインタフェースリストとスーパーエンティティクラスを使ったhibernateコレクションマッピング
public interface Model extends Serializable {
public Long getId();
public void setId(Long id);
}
//here is its implementation.they are not in the same physical file
public abstract class ModelImpl implements Model {
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}ここ
であることは、マッピングファイルです
<class abstract="true" name="ModelImpl">
<!--i removed doctype and stuffs-->
<id name="id">
<generator class="assigned"/>
</id>
</class>
ここでは、これが私の親
public interface Message extends Model {
Date getDateSent();
String getGlobalStatus();
} //その実装はここにあるが、異なる物理ファイルに パブリッククラスMessageImplがModelImplがMessage { プライベート文字列globalStatusを実装して拡張されPOJOインターフェイス上にあります。 プライベートリストレスポンス= new ArrayList(); プライベートDate dateSent; //セッターとゲッター....}
そのマッピングファイルそうのようである:
<union-subclass extends="ModelImpl" name="MessageImpl">
<property name="globalStatus"/>
<property name="dateSent" type="timestamp"/>
<設定/> - >
私はセットをコメントしました。なぜなら、そのキャストエラーは私に自分のeを認識させるものでしたrror はとても親であるレスポンスクラスはここにある:
public interface Response extends Model {
String getGatewayMessageId();
Message getMessageId();
}
//its implementation but in different physical file
public class ResponseImpl extends ModelImpl implements Response{
private static final long serialVersionUID = 1L;
private Message messageId;
private String gatewayMessageId;
//setters and getters..
}
私はそれがこのスローその子とのメッセージを保存しようとするので、それは私のテスト中にthat.now基本的には次のとおりです。
組織.hibernate.NonUniqueObjectException:同じ識別子の値を持つ異なるオブジェクトがすでにセッション
と関連していた私は、すべてのpersitentメソッド例外私はただの話いずれかを行うことができます。 私はここで少し失われているそれらのすべてがモデルIDを継承しているので、何が間違っているのですか?読んでいただきありがとうございます。私は本当にここの問題を理解していません。
のid manually.thanksを追加it.iを解決すでに別のエンティティによって使用されているIDを持つエンティティ –