【发布时间】:2012-01-05 23:32:15
【问题描述】:
我正在尝试在 GAE/JDO 中存储嵌入对象的列表。我收到了 Datanucleus 异常:
字段“Product.shippingOptions”属于“java.util.List”类型,但已指定为嵌入。 DataNucleus 不支持这种类型的嵌入。您的嵌入类型必须是 PersistenceCapable。
这是我的课程的简化版本:
@PersistenceCapable(identityType=IdentityType.APPLICATION, detachable="true")
public class Product
{
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent(defaultFetchGroup = "true")
@Embedded
private List<ShippingOption> shippingOptions;
}
@PersistenceCapable
@EmbeddedOnly
public class ShippingOption
{
@Persistent
private String shippingType;
@Persistent
private int price;
@Persistent
private String currency;
}
我不想使用单独的表/种类来存储每个产品的运输选项,因为运输选项还需要在创建时与 Order 对象一起存储。
有没有办法在 GAE/JDO 中存储子对象列表?如果不是,那么在 GAE/JDO 中对这些数据建模的“正确”方法是什么?
【问题讨论】:
标签: google-cloud-datastore data-modeling jdo