需要确认使用jdo + datanucleus持久保存引用的(嵌入式)对象

时间:2013-02-01 20:33:54

标签: java jdo datanucleus

您好我正在使用接口集合(List)持久化一个类。

我在链接上看到了这个 http://www.datanucleus.org/products/accessplatform_2_1/jdo/orm/embedded.html#Collection 它说“嵌入式元素不能继承(将来可能允许)”

那么,如何坚持这样的对象呢?

1 个答案:

答案 0 :(得分:0)

几个小时前我遇到了同样的问题,希望它能帮助其他人从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 {
    // ...
}