我正在尝试在 JDO 上编写一个简单的继承(NetBeans,而不是 Eclipse。而不是 GAE)。这很简单:
@PersistenceCapable
@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
public class TestModel1 {
}
和
@PersistenceCapable
@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
public class TestModel2 extends 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>
我一直在这上面花了几个小时,在谷歌和以前都没有答案。请帮忙>.<
编辑:
这是我的 QClass 结果
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>
我不知道 Netbeans 是如何生成扩展 QTestModel1 的 QTestModel2 从而导致编译错误的。而且我不确定手动更改是否会解决任何问题。