Запрос родительского класса всегда возвращает пустую коллекцию

У меня есть родительский класс со следующими аннотациями

@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();
        }
    }

1 ответ

Решение

Я проверил журналы как DataNucleus предложил в своем комментарии. Я не должен был использовать @Discriminatorдля родительского класса.

Я не уверен, могу ли я использовать @Discriminator для дочерних классов, но я нашел способ отказаться от его использования полностью для всей иерархии, поэтому разные записи для разных классов различаются по своей природе.

Другие вопросы по тегам