Aynı türde iki nesneye ihtiyacım var. Varsayılan olarak appengine buna izin vermez, ancak bu parametreyi buldum: datanucleus.appengine.allowMultipleRelationsOfSameType, böylece aynı tür nesneleri kaydedebilirim.AppEngine - Aynı Yazının Çoklu İlişkileri
Hata ayıklama modunda, makePersistent yöntemini çağırmadan önce her nesnenin içinde bir değer kontrol ettim ve bunlar farklıydı, ancak veri deposundaki değerleri kurtarmaya çalıştığımda bunlar aynıydı. Her ikisi de ikinci nesnenin değerine sahip miydi?
Bu kod nesneyi kaydetmek için FaseGAE geçerli:
manager = GAEDAOFactory.get().getPersistenceManager();
FaseGAE faseGAE2 = manager.getObjectById(FaseGAE.class, faseKey);
FaseGAE nesnesi:
@PersistenceCapable
public class FaseGAE {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<GrupoGAE> grupos;
GrupoGAE nesnesi:
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();
Bu kod nesneyi elde etmektir
@PersistenceCapable
public class GrupoGAE {
@PrimaryKey
@Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private List<MyClass1> list;
sinif1 nesnesi:
@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;
sinif2 Nesne: testValue1 ve testValue2 farklı değerler engellemekle birlikte sameTypeObject1 ve sameTypeObject2 sameTypeObject2 değerini var
@PersistenceCapable
public class MyClass2{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
. Veri deposunu kontrol ettim ve her iki nesne de farklı değerler ile oluşturuldu. Her ikisi de aynı referansa işaret ediyor gibi görünüyor.
Yanlış bir şey yapıyorum?
Aynı tür ilişkilerle çalışmak bir şey eksik mi?
Kesinlikle AppEngine aynı tür ilişkilere izin vermiyor mu? Daha önce benzer bir sorunla karşılaştık
Sorunu gösteren bazı kaynak kodlarını eklemeniz gerekecek. JDO ya da başka bir çerçeve hakkında konuşuyorsanız burada net değil. –
Evet, JDO kullanıyorum. – david
Sadece manager.makePersistent (myClass); ve myClass'ın farklı özelliklere sahip iki farklı mySubClass'ı var. Ama myClass'ı manager.getObjectById (myClass.class, myClassKey) ile veri deposundan aldığımda; her iki alt sınıftaki özellikler eşittir. Yardımınız için teşekkürler! – david