Можно ли с помощью JDO запрашивать все объекты, которые реализуют определенный интерфейс? - PullRequest
0 голосов
/ 25 октября 2010

Я попытался использовать следующий запрос:

Query q = getPersistenceManager().newQuery(
getPersistenceManager().getExtent(ICommentItem.class, false)
);

, но получил:

org.datanucleus.exceptions.NoPersistenceInformationException: класс
"com.sampleapp.data.dataobjects.ICommentItem "должен быть постоянным, но мета-данные / аннотации для этого класса не найдены.Пожалуйста, убедитесь, что метаданные / аннотации определены в правильном расположении файла.

Я видел на форуме Datanucleus, который кто-то предложил (несколько лет назад), используя:

<interface name=IComment/> 

Я пыталсяэто, но он не создал никакой таблицы, когда я запустил обновление схемы.Тег все еще актуален?Я не вижу ничего в документах на нем.

Я также пытался:

<class name=IComment/>

Но это приводило к этой ошибке при запуске schema-create:

SEVERE: Ошибка при повышениис ASMClassEnhancer java.lang.NullPointerException в org.datanucleus.enhancer.asm.method.DefaultConstructor.execute (DefaultConstructor.java:63) в org.datanucleus.enhancer.asm.JdoClassAdapter.visjg: ja.objectweb.asm.ClassReader.accept (неизвестный источник) в org.objectweb.asm.ClassReader.accept (неизвестный источник) в org.datanucleus.enhancer.asm.ASMClassEnhancer.enhance (ASMClassEnhancer.java:388) в org.dat.DataNucleusEnhancer.enhanceClass (DataNucleusEnhancer.java:1035) в org.datanucleus.enhancer.DataNucleusEnhancer.enhance (DataNucleusEnhancer.java:609) в org.datanucleus.enclen.: 46: 33 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage ИНФОРМАЦИЯ: ОШИБКА (PersistenceCapable): com.sampleapp.data.dataobjects.ICommentItem 23 октября 2010 г. 18:46:33 org.datanucleus.enhancer.asm.ASMClassEnhancer повысить ИНФО: Класс "com.sampleapp.data.dataobjects.Article" уже улучшен.23 октября 2010 г., 18:46:33. Org.datanucleus.enhancer.DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer завершился с ошибкой.Пожалуйста, просмотрите журнал энхансера для получения полной информации.Некоторые классы, возможно, были улучшены, но некоторые вызвали ошибки. Сбой при расширении классов - подробности см. В журнале org.datanucleus.exceptions.NucleusException: Сбой при расширении классов - подробности см. В журнале по адресу org.datanucleus.enhancer.DataNucleusEnhancer.enhance.(DataNucleusEnhancer.java:620) в org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316)

1 Ответ

0 голосов
/ 28 октября 2010

Оказывается, это не поддерживается в настоящее время, но планируется добавить в версию 2.2.0M3

...