こんにちは、インターフェイスのコレクション(リスト)を持つクラスを永続化しています。
リンク http://www.datanucleus.org/products/accessplatform_2_1/jdo/orm/embedded.html#Collection でこれを参照すると、「埋め込み要素は継承できません (これは将来的に許可される可能性があります)」と表示されます。
では、そのようなオブジェクトを永続化するにはどうすればよいでしょうか?
こんにちは、インターフェイスのコレクション(リスト)を持つクラスを永続化しています。
リンク http://www.datanucleus.org/products/accessplatform_2_1/jdo/orm/embedded.html#Collection でこれを参照すると、「埋め込み要素は継承できません (これは将来的に許可される可能性があります)」と表示されます。
では、そのようなオブジェクトを永続化するにはどうすればよいでしょうか?
数時間前に同じ問題に遭遇しました。jdo/datanucleus から始める他の人に役立つことを願っています。
現在のドキュメントに記載されているように、インターフェイスのコレクションを永続化する唯一の方法は、一方向結合テーブルを使用することです。インターフェイスを実装するオブジェクトを直接埋め込むことはできません。
@PersistenceCapable
public class SomeClass {
@Join
@Extension(vendorName="datanucleus", key="implementation-classes", value="ImplementingClass")
private List<SomeInterface> myList;
// this list would be embedded
private List<SomeOtherClass> myOtherList;
// ...
}
@PersistenceCapable
public interface SomeInterface {
// ...
}
@PersistenceCapable
public class ImplementingClass implements SomeInterface {
// ...
}
@PersistenceCapable(embeddedOnly="true")
public class SomeOtherClass {
// ...
}