问题描述
|
我需要具有相同类型的两个对象。默认情况下,appengine不允许这样做,但是我找到了以下参数:datanucleus.appengine.allowMultipleRelationsOfSameType,因此可以保存两个相同类型的对象。
在调试模式下,在调用makePersistent方法之前,我检查了每个对象内的值,它们是不同的,但是,当我尝试从数据存储中恢复值时,它们是相同的。两者都有第二个对象的价值?
这段代码是保存对象FaseGAE的:
manager = GAEDAOFactory.get().getPersistenceManager();
Key faseKey = KeyFactory.stringToKey(grupo.getFaseKey());
FaseGAE faseGAE = manager.getObjectById(FaseGAE.class,faseKey);
faseGAE.addGrupoGAE(grupoGAE);
faseGAE = manager.makePersistent(faseGAE);
manager.close();
这段代码是用来获取对象的:
manager = GAEDAOFactory.get().getPersistenceManager();
FaseGAE faseGAE2 = manager.getObjectById(FaseGAE.class,faseKey);
FaseGAE对象:
@PersistenceCapable
public class FaseGAE {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<GrupoGAE> grupos;
GrupoGAE对象:
@PersistenceCapable
public class GrupoGAE {
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<MyClass1> list;
MyClass1对象:
@PersistenceCapable
public class MyClass1 {
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private MyClass2 sameTypeObject1;
@Persistent private MyClass2 sameTypeObject2;
@Persistent private String testValue1;
@Persistent private String testValue2;
MyClass2对象:
@PersistenceCapable
public class MyClass2{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
testValue1和testValue2保留不同的值,但是sameTypeObject1和sameTypeObject2具有sameTypeObject2的值。我检查了数据存储,并用不同的值创建了两个对象。似乎两者都指向同一个参考。
难道我做错了什么?
使用相同类型关系缺少某些东西吗?
肯定是AppEngine不允许相同的类型关系吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)