0
嗨我堅持一個類與接口的集合(列表)。需要關於使用jdo + datanucleus持久引用(嵌入)對象的確認
我看到這個鏈路 http://www.datanucleus.org/products/accessplatform_2_1/jdo/orm/embedded.html#Collection 和它說「嵌入式元素不能有繼承(這可能會在未來被允許)」
那麼,如何保持這樣的對象?
嗨我堅持一個類與接口的集合(列表)。需要關於使用jdo + datanucleus持久引用(嵌入)對象的確認
我看到這個鏈路 http://www.datanucleus.org/products/accessplatform_2_1/jdo/orm/embedded.html#Collection 和它說「嵌入式元素不能有繼承(這可能會在未來被允許)」
那麼,如何保持這樣的對象?
幾小時前我遇到了同樣的問題,希望能幫助其他人以jdo/datanucleus開頭。
正如在current docs中所述,保持接口集合的唯一方法是通過unidirectional join table。直接嵌入實現接口的對象是不可能的。
@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 {
// ...
}