没有JDO注释,无法使用DataNucleus增强器

时间:2015-08-05 15:36:11

标签: java jdo datanucleus

我正在尝试使用JDO api的DataNucleus,仅使用XML来定义持久性模型,而不添加像@PersistenceCapable这样的注释。如果我确实理解这两个文档,那么JDO和DataNucleus都应该支持这一点。

例如,如果我删除datanucleus example中的Book.java,Inventory.java,Product.java的所有注释并运行mvn clean compile我应该完成工作,因为package.orm定义了这些类,但是我对所有这些类都有以下错误:

  

(主要)DEBUG [DataNucleus.MetaData] - 类   org.datanucleus.samples.jdo.tutorial.Inventory在。中指定   持久性单元(可能不包括exclude-unlisted-classes)   教程但没有注释,所以忽略

     

...

     

(主要)INFO [DataNucleus.Enhancer] - DataNucleus Enhancer已成功完成0个课程。

我缺少什么?

实际配置文件:

persistence.xml
...
<persistence-unit name="Tutorial">
    <class>org.datanucleus.samples.jdo.tutorial.Inventory</class>
    <class>org.datanucleus.samples.jdo.tutorial.Product</class>
    <class>org.datanucleus.samples.jdo.tutorial.Book</class>
    <exclude-unlisted-classes/>
    ...
</persistence-unit>
...

package-h2.orm
<orm>
<package name="org.datanucleus.samples.jdo.tutorial">
    <!-- persistence-modifier is by default equal to: persistence-capable -->
    <class name="Inventory" table="INVENTORIES" >...</class>
    <class name="Product" table="PRODUCTS">...</class>
    <class name="Book" table="BOOKS">...</class>
</orm>

1 个答案:

答案 0 :(得分:1)

ORM元数据是OVERRIDE JDO元数据。因此,您需要注释或JDO XML元数据文件( package.jdo )。

persistence.xml中的

“class”条目用于指定具有注释的类,并且您说没有注释。

persistence.xml中的

“mapping-file”条目用于指定XML元数据文件......您尚未指定任何内容。