Java 使用类的实例列表持久化类A
看看下面的代码示例Java 使用类的实例列表持久化类A,java,google-app-engine,jdo,Java,Google App Engine,Jdo,看看下面的代码示例 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") public class A implements Serializable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extensi
@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;
//...
}
在构造函数中正确地设置了列表,我有一个默认的空构造函数,用于Serializable not fail
也许这是索引的问题?
datastore-index.xml如下所示
A a = new A("a");
B b = new B("b");
b.add_to_children(new B("child_of_b"));
a.add_to_list(b);
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(a);
pm.close();
<datastore-index kind="B" ancestor="true" source="manual">
<property name="m_ListOfB_INTEGER_IDX" direction="asc"/>
</datastore-index>
不确定m_儿童的索引应该是什么样子,或者我是否需要添加它
有什么想法吗?
谢谢如果你能发布你为持久化对象而编写的代码,我想这会很有帮助。我删除了我的帖子,因为我误读了这个问题。对不起,数据存储查看器很弱。即使实体根本没有显示在查看器中,也可以正确存储它们。您不需要定义任何索引来存储数据。尝试编写一些代码来获取B对象及其子对象,看看它是否有效。有时感觉使用数据存储需要很大的信心!