【问题标题】:With JDO, is it possible to query for all objects that implement a particular interface?使用 JDO,是否可以查询实现特定接口的所有对象?
【发布时间】:2010-10-24 21:36:30
【问题描述】:

我尝试使用以下查询:

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

但是得到了:

org.datanucleus.exceptions.NoPersistenceInformationException:类
“com.sampleapp.data.dataobjects.ICommentItem”必须是可持久的,但无法找到此类的 Meta -Data/Annotations。请检查元数据/注释是否定义在有效的文件位置。

我在 Datanucleus 论坛上看到有人建议(几年前)使用:

<interface name=IComment/> 

我试过了,但是当我运行模式更新时它没有创建任何表。标签仍然是相关的吗?我无法在上面的文档中看到任何内容。

我也试过了:

<class name=IComment/>

但是在运行 schema-create 时出现了这个错误:

严重:使用 ASMClassEnhancer 增强时引发的错误 java.lang.NullPointerException 在 org.datanucleus.enhancer.asm.method.DefaultConstructor.execute(DefaultConstructor.java:63) 在 org.datanucleus.enhancer.asm.JdoClassAdapter.visitEnd(JdoClassAdapter.java:317) 在 org.objectweb.asm.ClassReader.accept(未知来源) 在 org.objectweb.asm.ClassReader.accept(未知来源) 在 org.datanucleus.enhancer.asm.ASMClassEnhancer.enhance(ASMClassEnhancer.java:388) 在 org.datanucleus.enhancer.DataNucleusEnhancer.enhanceClass(DataNucleusEnhancer.java:1035) 在 org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:609) 在 org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1316) 2010 年 10 月 23 日下午 6:46:33 org.datanucleus.enhancer.DataNucleusEnhancer addMessage 信息:错误(PersistenceCapable):com.sampleapp.data.dataobjects.ICommentItem 2010 年 10 月 23 日下午 6:46:33 org.datanucleus.enhancer.asm.ASMClassEnhancer 增强 信息:“com.sampleapp.data.dataobjects.Article”类已得到增强。 2010 年 10 月 23 日下午 6:46:33 org.datanucleus.enhancer.DataNucleusEnhancer addMessage 严重:DataNucleus Enhancer 完成但出现错误。请查看增强器日志以获取完整详细信息。有些类可能已经增强,但有些会导致错误 增强类期间失败 - 有关详细信息,请参阅日志 org.datanucleus.exceptions.NucleusException:在增强类期间失败 - 请参阅日志了解详细信息 在 org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:620) 在 org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1316)

【问题讨论】:

    标签: java interface jdo datanucleus


    【解决方案1】:

    目前不支持此功能,但计划在 2.2.0M3 版本中添加

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      相关资源
      最近更新 更多