2
我需要一些關於hibernate註釋的幫助。休眠註解Java地圖
我有以下2個實體:
public class Custom {
private Map<KeyObject, ValueObject> properties;
@oneToMany(mappedBy = "customId", cascade = CascadeType.All)
@MapKey(name = "keyObject")
public Map<KeyObject, ValueObject> getProperties();
.....
}
public class ValueObject {
private KeyObject keyObject;
private Long customId;
private String value;
...getters and setters
}
我有一個簡單的DAO類來保存,更新,選擇和刪除記錄。
如果我從自定義對象中的地圖中刪除記錄,然後調用customDao.save(自定義),我的更改永遠不會持久保存到數據庫。它也不會拋出任何錯誤。
我在hibernate示例中看到,我可以將customId定義爲Custom對象而不是KeyValue表中的Long,但我不想這樣做。
我是否設置了錯誤的實體?
感謝您的快速響應。我最初使用ValueObject Dao來將數據保存在地圖中。我遇到了一個問題,但。在我刪除一條記錄並嘗試添加一條記錄後,我得到一個HibernateOptimisticLockingFailureException,說明我的批處理已過時。我認爲這是因爲我使用ajax來更新地圖記錄,並且模型中的Custom對象從不刷新。 – blong824