刪除時,我一直在使用JDO 3.0語法定義無主的關係:JDO在AppEngine上:保持原有的實體無主從關係
@Persistent
@Unowned
private Set<Role> roles;
我有應分配給用戶的幾個預定義角色。我用下面的代碼添加/刪除角色分配給用戶:
roles.add(roleEntity);
roles.remove(roleEntity);
的問題是,去除這樣也從數據庫中刪除原來的實體,但我只是想刪除引用。我知道我只能在父實體中存儲能夠解決問題的Keys,但有沒有更好的解決方案?使用這種「自然」的語法?
AFAIK,無主的關係從不依賴,所以這不應該發生。如果你的'Role'是序列化的('@Persistent(serialized = true)')或嵌入的('@ Embedded'),OTOH可能會發生。 – 2012-08-07 11:48:50
角色既沒有序列化也沒有嵌入。這是角色實體的代碼http://pastebin.com/ZRLNhiWm ...沒什麼特別的。 – tobik 2012-08-07 12:14:57
一個無主關係可以依賴或不依賴於基於標準級聯刪除設置...對於GAE或任何數據存儲區...顯然存在任何問題的不完整定義 – 2012-08-07 13:27:44