1

JPA 2.0的GAE 文档指出enhance_warant 文件的目标应该是:

  <target name="datanucleusenhance" depends="compile"
  description="Performs enhancement on compiled data classes.">
  <enhance_war war="war">
          <args>
          <arg value="-enhancerVersion"/>
          <arg value="v2"/>
      </args>
  </enhance_war>

但是,我们可以在以下位置找到ant-macros.xml

<attribute name="api" description="persistence api, JDO or JPA" default="JDO"/>

这是正确的,即我们不应该指定 JPA 的用法吗?

4

1 回答 1

2

有趣的是,在 Ant 部分查看DataNucleus 文档,我读到:

api Optional. Defines the API to be used when enhancing JDO, JPA

并且 JDO 是默认设置,我会在需要时将其指定为 JPA,即使它似乎仍然可以工作。

在我看来,宏并没有增加很多价值,所以我决定直接在我的配置中集成增强任务,所以我只能选择以 Entity 结尾的类,而不是让 datanucleus 检查每个类。

<target name="-datanucleusenhance" depends="compile"
        description="Performs enhancement on compiled data classes">
    <enhance failonerror="true" api="JPA">
        <arg value="-enhancerVersion"/>
        <arg value="v2"/>
        <classpath>
            <pathelement path="${main.classes.dir}"/>
            <pathelement path="${sdk.dir}/lib/appengine-tools-api.jar"/>                
        </classpath>
        <fileset dir="${war.dir}/WEB-INF/classes" includes="**/*Entity.class"/>
    </enhance>
</target>

让我知道你在此期间发现了什么!

于 2012-09-09T18:59:54.307 回答