【问题标题】:Google App Engine - Update JPA 1 to JPA 2Google App Engine - 将 JPA 1 更新为 JPA 2
【发布时间】:2013-05-07 04:52:37
【问题描述】:

我想更新我的 GAE Web 应用程序以使用 JPA 2.0。从文档here 中,它说我必须将appengine-java-sdk/lib/opt/user/datanucleus/v2/ 的内容复制到项目的lib 文件夹中。

这是appengine-java-sdk/lib/opt/user/datanucleus/v2/的文件:

  1. asm-4.0.jar
  2. datanucleus-api-jdo-3.1.3.jar
  3. datanucleus-api-jpa-3.1.3.jar
  4. datanucleus-appengine-2.1.2.jar
  5. datanucleus-core-3.1.3.jar
  6. geronimo-jpa_2.0_spec-1.0.jar
  7. jdo-api-3.0.1.jar
  8. jta-1.1.jar

目前,这是项目的lib 文件夹中可能会影响迁移的内容:

  1. appengine-api-1.0-sdk-1.7.7.1.jar
  2. appengine-api-labs.jar
  3. appengine-endpoints.jar
  4. appengine-jsr107cache-1.7.7.1.jar
  5. asm-3.3.jar
  6. asm-commons-3.3.jar
  7. asm-tree-3.3.jar
  8. datanucleus-appengine-1.0.10.final.jar
  9. datanucleus-core-1.1.5.jar
  10. datanucleus-jpa-1.1.5.jar
  11. geronimo-jpa_3.0_spec-1.1.1.jar
  12. geronimo-jta_1.1_spec-1.1.1.jar
  13. jdo2-api-2.3-eb.jar
  14. jsr107cache-1.1.jar

我应该删除哪些文件?我试图删除具有新版本的文件,但 eclipse 正在寻找旧文件:

  1. datanucleus-appengine-1.0.10.final.jar
  2. datanucleus-core-1.1.5.jar
  3. geronimo-jpa_3.0_spec-1.1.1.jar

这是我的 persistence.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

    <persistence-unit name="transactions-optional">
        <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider>
        <properties>
            <property name="datanucleus.NontransactionalRead" value="true"/>
            <property name="datanucleus.NontransactionalWrite" value="true"/>
            <property name="datanucleus.ConnectionURL" value="appengine"/>

            <property name="datanucleus.appengine.ignorableMetaDataBehavior" value="NONE"/>
        </properties>
    </persistence-unit>

</persistence>

对此有任何帮助吗?谢谢

【问题讨论】:

    标签: google-app-engine jpa jpa-2.0 datanucleus


    【解决方案1】:

    使用 Datanucleus 需要 eclipse 插件检查这个link

    将 Persistence Provider 更改为 persistence.xml org.datanucleus.api.jpa.PersistenceProviderImpl JPA 2.0 Provider 更多 here

    用相同的新库更改每个单独的库

    这是我的应用程序的屏幕截图 注意* 使用 GAE 1.7.4

    【讨论】:

    • 我删除了旧文件,但我的eclipse说丢失了这些文件,如何修复它?
    • 尝试清理项目:项目>>清理
    • 我已经清理了项目。解决方案是Right Click Project &gt;&gt; Properties &gt;&gt; Google &gt;&gt; App Engine &gt;&gt; Datastore &gt;&gt; Datanucleus version = v2
    • 是的,对不起,我忘记告诉你了 :)
    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多