necesito tener dos objetos del mismo tipo. Por defecto appengine no lo permite, pero encontré este parámetro: datanucleus.appengine.allowMultipleRelationsOfSameType, así que puedo guardar los dos mismos objetos de tipo.AppEngine - Múltiples Relaciones de Igualdad Tipo
En el modo de depuración, antes de llamar al método makePersistent verifiqué un valor dentro de cada objeto y eran diferentes, sin embargo, cuando intenté recuperar los valores del almacén de datos, eran lo mismo. Ambos tenían el valor del segundo objeto?
Este código es para guardar el objeto 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();
Este código es conseguir el objeto:
manager = GAEDAOFactory.get().getPersistenceManager();
FaseGAE faseGAE2 = manager.getObjectById(FaseGAE.class, faseKey);
FaseGAE objeto:
@PersistenceCapable
public class FaseGAE {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<GrupoGAE> grupos;
GrupoGAE objeto:
@PersistenceCapable
public class GrupoGAE {
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<MyClass1> list;
MyClass1 objeto:
@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;
miclase2 objeto:
@PersistenceCapable
public class MyClass2{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
testValue1 y testValue2 mantiene valores diferentes, pero sameTypeObject1 y sameTypeObject2 tener el valor de sameTypeObject2. Revisé el almacén de datos y ambos objetos fueron creados con diferentes valores. Parece que ambos apuntan a la misma referencia.
¿Estoy haciendo algo mal?
¿Algo le falta para trabajar con las mismas relaciones tipo?
Definitivamente AppEngine no permite las mismas relaciones de tipo?
Necesitará incluir algún código fuente que demuestre el problema. No está claro aquí si estás hablando de JDO u otro marco. –
Sí, estoy usando JDO. – david
Acabo de llamar al manager.makePersistent (myClass); y myClass tiene dos mySubClass diferentes con diferentes atributos. Pero cuando obtengo myClass del almacén de datos con manager.getObjectById (myClass.class, myClassKey); los atributos en ambas subClasses son iguales. Gracias por tu ayuda! – david