我有一个带有以下注释的父类
@PersistenceCapable(table = "my_parent_table", objectIdClass = Myclass.PK.class, detachable = "true", identityType = IdentityType.APPLICATION)
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
@Discriminator(strategy = DiscriminatorStrategy.VALUE_MAP, column = "discriminator", value = "0")
现在我的所有子类都有以下注释,除了value
注释的@Discriminator
属性当然不同,table
属性除外@PersistanceCapable
属性注释。
@PersistenceCapable(detachable = "true", table = "my_table")
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
@Discriminator(value = "1")
通过使用@Persistence
注释的DAO类,我使用以下方法作为PoC
public List<MyParentClass> test() {
PersistenceManager pm = null;
try {
pm = getPM();
Query q = pm.newQuery(MyParentClass.class);
return (List<MyParentClass>) q.execute();
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
} finally {
pm.close();
}
}
答案 0 :(得分:0)
我将日志检查为评论中建议的DataNucleus
。我不应该为父类使用@Discriminator
。
我不确定我是否可以在子类中使用@Discriminator
,但我想办法完全放弃在整个层次结构中使用它,因此不同类的不同记录本质上是不同的。