我正在使用DataNucleus 2 JDO实现。我有一个我必须附加的分离对象,但我不想附加所有字段(在这种情况下,一个集合)
public class Obj {
private String key;
private Collection<String> col;
}
是否有可能无法做到这一点:
tx.begin();
obj.makeTransientAll(obj.getCol()); // Do not persist
pm.makePersistent(obj);
tx.commit();
来自数据库的或REFRESH:
tx.begin();
obj.refreshAll(obj.getCol()); // Discard any changes
pm.makePersistent(obj);
tx.commit();
感谢。
答案 0 :(得分:0)
我猜您应该应用更改 AFTER 刷新对象或使其变为瞬态。
或者另一方面,做一些我真正想做的事情来了解JDO
的工作原理,但我没有太多时间去研究。为什么不在最初查找对象之后,不要将其分离,而是将其保持在附加状态并在查找方法之外进行修改,然后在另一种方法中使其保持持久性?
让我感到困惑的是,在查找方法中,您不会关闭PersistenceManager
,而在保存对象的后一种方法中,您将使用另一个PersistenceManager
,这应该是触发异常,因为您正在使用与首先查找的对象不同的PersistenceManager
来管理对象。
我仍在学习JDO
和Datanucleus
所以请期待我的建议可能不起作用。非常感谢您与我的建议分享您的经验。