大佬教程收集整理的这篇文章主要介绍了AppEngine数据存储区:“ ID为…的对象由其他对象管理器管理”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一个持久对象只能由一个PersistenceManager“管理”。在datanucleus中,这由“ ObjectManager”在内部支持。该消息表明您正在尝试将一个PM管理的对象与另一个PM关联。您可以通过打印每个(持久)对象的PM来轻松调试它
JDOHelper.getPersistenceManager(obj);
由于您没有定义消息的来源,因此无法说更多。datanucleus日志条目将告诉您更多方法。
关闭PM始终是必不可少的事情(除非您希望资源泄漏)
我正在使用带有Java的Google AppENGIne。当我使用某些数据存储功能时,出现一条错误消息:
Object with id "edvaltt.Teacher@64064b" is managed by a different Object Manager
我不知道这意味着什么,如何解决它,或者在哪里可以找到有关此错误的文档。谁能帮我?我使用的代码是:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class School {
@primaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String shortname;
@Persistent
private String fullname;
@Persistent
@Order(extensions = @Extension(vendorName="datanucleus",key="list-ordering",value="code asc"))
private List<Teacher> Teachers;
...
public Teacher FindOrCreateTeacher(String codE)
{
// Can we find the teacher without any database code?
Teacher newTeacher = FindTeacher(codE);
if (newTeacher != null)
return newTeacher;
// Create the teacher:
PersistenceManager pm = PMF.get().getPersistenceManager();
transaction tx = pm.currenttransaction();
try {
tx.begin();
for (Teacher teacher : Teachers) {
if (teacher.getCode() == codE) {
tx.rollBACk();
return teacher;
}
}
newTeacher = new Teacher(codE);
Teachers.add(newTeacher);
pm.makePersistent(newTeacher);
pm.makePersistent(Teachers);
tx.commit();
} finally {
tx.commit();
}
return newTeacher;
}
我相信“ private List<Teacher> Teachers;
”是指“拥有的,一对多”的关系。
以上是大佬教程为你收集整理的AppEngine数据存储区:“ ID为…的对象由其他对象管理器管理”全部内容,希望文章能够帮你解决AppEngine数据存储区:“ ID为…的对象由其他对象管理器管理”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。