Я пытаюсь сохранить список встроенных объектов в 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?