0

我有一个带有以下注释的父类

@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")

通过一个用 注释的 DAO 类,@Persistence我使用以下方法作为 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();
        }
    }
4

1 回答 1

0

DataNucleus我按照他的评论中的建议检查了日志。我不应该将 a@Discriminator用于父类。

我不确定我是否可以将 a@Discriminator用于子类,但我想出了一种方法来完全放弃对整个层次结构使用它,因此不同类的不同记录本质上是不同的。

于 2012-12-18T11:36:59.493 回答