Inheritance JDO上的继承

Inheritance JDO上的继承,inheritance,netbeans,jdo,datanucleus,Inheritance,Netbeans,Jdo,Datanucleus,我试图在JDO上编写一个简单的继承(NetBeans,不是Eclipse,也不是GAE)。这很简单: @PersistenceCapable @Inheritance(strategy=InheritanceStrategy.NEW_TABLE) public class TestModel1 { } 及 但是当我试图构建它时,我得到了以下错误 type com.ncr.model.QTestModel1 does not take parameters public class QTest

我试图在JDO上编写一个简单的继承(NetBeans,不是Eclipse,也不是GAE)。这很简单:

@PersistenceCapable
@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
public class TestModel1 {

}

但是当我试图构建它时,我得到了以下错误

type com.ncr.model.QTestModel1 does not take parameters
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>


com.ncr.model.QTestModel2 is not abstract and does not override abstract method jdoVersion() in org.datanucleus.query.typesafe.PersistableExpression
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>
类型com.ncr.model.QTestModel1不接受参数
公共类QTestModel2扩展了com.ncr.model.QTestModel1实现了PersistableExpression
com.ncr.model.QTestModel2不是抽象的,并且不会覆盖org.datanucleus.query.typesafe.PersistableExpression()中的抽象方法jdoVersion()
公共类QTestModel2扩展了com.ncr.model.QTestModel1实现了PersistableExpression

我花了好几个小时在这上面,但在谷歌和这里都没有答案。请帮助>首先,您忽略了提到您正在使用DataNucleus Typesafe API(大概是因为JDO还没有包括这一点)


其次,DataNucleus SVN的测试继承了类型安全类,并且没有问题。因此,建议您通过查看这些QTestModel1/QTestModel2类的(生成的)源代码来调试问题

哇!永远不要指望得到消息来源本身的答复。我很荣幸:)我添加了一些生成的QClass。谢谢你指出这一点。但我仍然没有找到任何解决方案,因为您使用的是旧版本的“datanucleus jdo查询”。DataNucleus JIRA告诉您在不同的版本中发生了什么变化,所以您可以计算出哪一个可能会影响您的问题—非常令人印象深刻!我使用的是DataNucleus lib 2.2,并将其更改为DataNucleus lib 3.0,所有内容都可以正常编译。我的单元测试运行也很好。我猜最后的答案是“升级你的库”谢谢!
type com.ncr.model.QTestModel1 does not take parameters
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>


com.ncr.model.QTestModel2 is not abstract and does not override abstract method jdoVersion() in org.datanucleus.query.typesafe.PersistableExpression
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>
public class QTestModel1 extends org.datanucleus.jdo.query.PersistableExpressionImpl<TestModel1> implements PersistableExpression<TestModel1>
{
    public static final QTestModel1 jdoCandidate = candidate("this");

    // not important
}
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>
{
    public static final QTestModel2 jdoCandidate = candidate("this");

    // not important
}
public class QTestModel2 extends com.ncr.model.QTestModel1<TestModel2> implements PersistableExpression<TestModel2>