java – AppEngine – 相同类型的多重关系
我需要有两个相同类型的对象.默认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.我检查了数据存储区,并且使用不同的值创建了两个对象.看起来两者都指向相同的参考. 我做错了吗? 解决方法
我以前遇到过类似的问题,“我不太确定你的确切问题是什么,是否一样,但希望这个答案至少会指向你的方向
然而,在使用java与GAE时,可以采用几种“最佳做法”. 1)实现Serializable for classes 2)您可以尝试使用objectify进行GAE数据存储 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |