Постоянный класс A со списком экземпляров A - PullRequest
1 голос
/ 04 апреля 2011

Взгляните на следующий пример кода.

    @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") 
    public class A implements Serializable
    {
        @PrimaryKey  
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)  
        @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")  
        private String key;
        @Persistent
        private String m_Name;
        @Persistent(mappedBy = "m_A")
        private List<B> m_ListOfB;
//...
    }



       @PersistenceCapable(identityType = IdentityType.APPLICATION,detachable="true") 
        public class B implements Serializable
        {
            @PrimaryKey
            @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
            @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
            private String key;
            @Persistent 
            private A m_A;
            @Persistent
        private List<B> m_Children;
//...
}

Когда я настраиваю экземпляр A, с несколькими B в списке m_ListOfB (у этих экземпляров B также есть несколько Children)и сохраняю его, я вижу только A в моем просмотрщике хранилища данных.Если я удаляю m_Children из B, и пытаюсь снова сохранить A, я вижу A и объекты в m_ListOfB.

Сохраняются так, как это, и у меня есть пустой Ctor по умолчанию для Serializable, чтобы не потерпеть неудачу.

Возможно, это проблема индексов?Datastore-indexes.xml выглядит следующим образом

<datastore-index kind="B" ancestor="true" source="manual">
        <property name="m_ListOfB_INTEGER_IDX" direction="asc"/>
    </datastore-index>

Не уверен, как должен выглядеть индекс для m_Children, или мне даже нужно его добавить.

Есть идеи?Спасибо

...