没有持久性提供者可用于“交易 - 可选” [英] No persistence providers available for "transactions-optional"

查看:124
本文介绍了没有持久性提供者可用于“交易 - 可选”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  javax.persistence.PersistenceException:没有持久性提供程序可用于我的AppEngine项目在尝试以下发现的实现之后执行transactions-optional:org.datanucleus.api.jpa.PersistenceProviderImpl $ b $ at javax.persistence.createEntityManagerFactory(Persistence.java:180)
at javax.persistence.Persistence。 createEntityManagerFactory(Persistence.java:70)

jdoconfig.xml

 < jdoconfig xmlns =http://java.sun.com/xml/ns/jdo/jdoconfig
xmlns :xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://java.sun.com/xml/ns/jdo/jdoconfig http:// java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd\">

< persistence-manager-factory name =transactions-optional>
< property name =javax.jdo.PersistenceManagerFactoryClass
value =org.datanucleus.api.jdo.PersistenceManagerFactoryClass/>
< property name =javax.jdo.option.ConnectionURLvalue =appengine/>
< property name =javax.jdo.option.NontransactionalReadvalue =true/>
< property name =javax.jdo.option.NontransactionalWritevalue =true/>
< property name =javax.jdo.option.RetainValuesvalue =true/>
< property name =datanucleus.appengine.autoCreateDatastoreTxnsvalue =true/>
< property name =datanucleus.appengine.singletonPMFForNamevalue =true/>
< / persistence-manager-factory>
< / jdoconfig>

它真的很奇怪,因为在我的jdoconfig.xml中有这个transactions-optional

解决方案

显然,JPA(用于获取EMF)不使用jdoconfig.xml(由JDO使用)。 JPA使用persistence.xml。建议您在继续使用之前决定使用哪个API

I'm having this error in my AppEngine project:

javax.persistence.PersistenceException: No persistence providers available for "transactions-optional" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:180)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:70)

jdoconfig.xml

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">

    <persistence-manager-factory name="transactions-optional">
        <property name="javax.jdo.PersistenceManagerFactoryClass"
            value="org.datanucleus.api.jdo.PersistenceManagerFactoryClass"/>
        <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
        <property name="javax.jdo.option.NontransactionalRead" value="true"/>
        <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
        <property name="javax.jdo.option.RetainValues" value="true"/>
        <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
        <property name="datanucleus.appengine.singletonPMFForName" value="true"/>
    </persistence-manager-factory>
</jdoconfig>

Its really weird since in my jdoconfig.xml there is this "transactions-optional"

解决方案

Obviously JPA (which you use to get an EMF) doesn't use "jdoconfig.xml" (which is used by JDO). JPA uses "persistence.xml". Suggest you decide which API you're using before going further

这篇关于没有持久性提供者可用于“交易 - 可选”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆