【发布时间】:2013-03-04 12:58:00
【问题描述】:
我在客户端创建了两个类,它们使用 GWT JDO 存储。
父类看起来像:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Park implements Serializable{
@PrimaryKey
@Persistent
private String parkId;
//...
@Persistent(mappedBy = "park", defaultFetchGroup = "true")
private List<Facility> facilityList;
// other stuff
孩子看起来像:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Facility implements Serializable{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;
@Persistent
private Park park;
// other stuff
在服务器端,我有一个获取所有内容的方法:
public Park[] getParks(){
PersistentManager pm = getPersistentManager();
ArrayList<Park> parkList = new ArrayList<Park>();
try {
Query q = pm.newQuery(Park.class);
List<Park> parks = (List<Park>) q.execute();
for(Park p:parks)
parkList.add(p);
} finally {
pm.close();
}
return parkList.toArray(new Park[parkList.size()]);
}
当我调用这个方法时,它会抛出一个异常:
com.google.gwt.user.client.rpc.SerializationException:类型 'org.datanucleus.store.types.sco.backed.ArrayList' 未包含在可由此 SerializationPolicy 或其类对象序列化的类型集中不被加载。出于安全考虑,此类型不会被序列化。
我不知道出了什么问题。欢迎提出任何建议。
【问题讨论】:
标签: java gwt serialization jdo