我遇到了Hibernate的問題。 我目前的項目是一個小遊戲。在這個遊戲中你有一個董事會它有很多領域每個與令牌。
我可以在沒有任何問題的情況下在空數據庫上進行選擇,但如果我將一個對象放入其中(保存工作無任何異常,並且在數據庫值看起來不錯後)我收到異常。
在董事會類有趣的部分:休眠在選擇時執行刪除
@OneToMany(fetch=FetchType.EAGER)
@MapKey(name = "point")
public Map<Point, Field> getGameMatrix() {
return gameMatrix;
}
我爲獲得董事會查詢:
return getHibernateTemplate().loadAll(Board.class);
日誌現在這樣出現:
休眠:選擇THIS_。 id as id0_2_, this_.uniqueClassName as uniqueCl3_0_2_,this_.borderDimension as borderDi4_0_2_,this_.dim ension如 dimension0_2_,this_.TYPE如TYPE0_2_, gamematrix2_.Board_id如Board1_4_, field3_.id如gameMatrix2_4_,(從場A11選擇 a11.point其中 a11.id = gamematrix2_.gameMatrix_id)作爲 formula0_4_,field3_。 id作爲id1_0_, field3_.point爲point1_0_, field3_.token_id爲token3_1_0_, token4_.id爲id2_1_,token4_.name爲 name2_1_,token4_.uniqueClassName從董事會 uniqueCl4_2_1_,token4_.TYPE作爲 TYPE2_1_ THIS_左外 加入Board_Field gamematrix2_ this_.id = gamematrix2_.Board_id left outer join Field fi eld3_上 gamematrix2_.gameMatrix_id = field3_.id 左外上 field3_.token_id = token4_.id
加入令牌token4_直到有它看起來不錯,但隨後休眠執行以下操作:
Hibernate: delete from Board_Field where Board_id=?
Hibernate: insert into Board_Field (Board_id, gameMatrix_id) values (?, ?)
而且我得到這個異常:
異常在線程 「AWT-EventQueue的 - 0」 org.springframework.dao.InvalidDataAccessApiUsageException: 對象引用未保存的瞬態 實例 - 在沖洗前保存瞬態實例 :Field;嵌套0例外是 org.hibernate.TransientObjectException: 對象引用一個未保存的瞬態 實例 - 沖洗之前保存的瞬態的實例 :現場
我不理解爲什麼它使delete語句。
任何想法?
感謝
早期交易是否正確關閉? – Padmarag 2010-02-24 08:49:31
在這個問題上的任何進展? – Bozho 2010-02-25 13:10:02