【发布时间】: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