我想在持久性管理器连接关闭后使用jdo的detachCopy方法来使用对象,但是detachCopy对性能至关重要。
我正在尝试从数据库中获取Role对象。角色类由StaticRole类扩展。
PersistenceManager pm = PersistenceFactory
.getPersistenceManager(clientId);
Transaction tx = pm.currentTransaction();
try {
tx.begin();
List<Role> allRoles = (List<Role>) pm
.detachCopyAll(getAllRoles(pm));
tx.commit();
return allRoles;
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
这里我不想使用detachCopy方法因为它减慢了我的代码。我也试过makeTransient方法,但它没有递归地工作,即它给了我角色但是静态角色数据丢失了。我也尝试使用makeFetchplan和makeTransient,但这也需要时间。
请有人帮助我。