2012-02-21 13 views
1

休止状態セッションからオブジェクトを削除するにはどうすればよいですか?私のコードでは、DBから1つのリストを取り出して、ユーザーが入力したデータがすでにDBに入っているかどうかを調べています。それがあれば、私はそれを上書きしています。そうでなければ、新しいオブジェクトを作成して保存しています。しかし、jbossはセッション中に2つのオブジェクトが存在するというエラーを示しています。限り、私は1つのオブジェクトは、リストを反復するオブジェクトと他のデータを保存するために新たに作成されたものだと思います。休止状態でセッションからオブジェクトを削除します

for(Allocation al: allocatelist){ 
    if(al.getDate().compareTo(dt)==0){ 
      al.setAllocated(gpsz); 
      getManager().save(al); 
      flag=1; 
      break; 
    { 
{ 

上記の条件が満たされない場合は、新しいオブジェクトを作成して保存します。だから私はこのオブジェクト "アル"を取り除くことができる方法はありますか? 私は合併や更新の方法を持っていません。私は "evict()"を試しましたが、その使用はありません。 Hibernateは、オブジェクトが変更されたことを検出し、それが自動的にデータベースを更新するため 他AllocationオブジェクトはHibernateが管理されている

Allocation allocate = new Allocation(); 
allocate = filldata(allocate, dataMap,i); 
    getManager().save(allocate); 
filldata() fills the inputs into the object.` 
+0

可能重複:http://stackoverflow.com/questions/3288838/remove-object-from-session-in-hibernate – bchetty

+0

例外のメッセージとスタックトレースとはなんですか? –

+1

割り当てオブジェクトがHibernateによって管理されている場合、 "getManager()。save(al);"を呼び出す必要はありません。これは、オブジェクトが変更されたことをHibernateが検出して保存するためです。 –

答えて

0

場合はブロックし、その後、あなたはgetManager().save(al)を呼び出すための必要はありません。

+0

保存してもオブジェクトが残っていません –