Это просто работает:
Employee sam = new Employee("Sam");
List<Address> addresses = new ArrayList<Address>();
addresses.add(new Address("Foo St. 1"));
addresses.add(new Address("Bar Bvd. 3"));
sam.setAddresses(addresses);
persistenceManager.makePersistent(sam);
Сотрудник:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Employee {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
private List<Address> addresses;
...
}
Адрес:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Address {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
...
}
Используйте @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
в качестве аннотации на уровне класса. Обычно вам не нужно аннотировать любые другие поля, кроме ключа, поэтому @Persistent(mappedBy = "employee")
на List
не требуется.
Btw. Я предлагаю использовать параметризованные коллекции.