【问题标题】:Unable to use DataNucleus enhancer without JDO annotations无法在没有 JDO 注释的情况下使用 DataNucleus 增强器
【发布时间】:2015-08-05 15:36:11
【问题描述】:

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

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

(main) 调试 [DataNucleus.MetaData] - 类 org.datanucleus.samples.jdo.tutorial.Inventory 在 持久性单元(也许通过不放置排除未列出的类) 教程但没有注释,所以忽略

....

(main) 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>

【问题讨论】:

    标签: java jdo datanucleus


    【解决方案1】:

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

    persistence.xml 中的

    "class" 条目用于指定具有注释的类,而你说你没有。

    “mapping-file” persistence.xml 中的条目用于指定 XML 元数据文件...而您没有指定任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2012-04-12
      相关资源
      最近更新 更多