Java 无法使用persistence.xml持久化到sql server数据库
我是java新手。我正在尝试将我的应用程序连接到计算机上的SQL server数据库,但出现以下错误:Java 无法使用persistence.xml持久化到sql server数据库,java,jpa,Java,Jpa,我是java新手。我正在尝试将我的应用程序连接到计算机上的SQL server数据库,但出现以下错误: javax.persistence.PersistenceException:No Persistence provider for EntityManager named Sub: The following providers: oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider oracle.toplin
javax.persistence.PersistenceException:No Persistence provider for EntityManager named Sub: The following providers:
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
oracle.toplink.essentials.PersistenceProvider
Returned null to createEntityManagerFactory.
我的persistence.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="Application">
<provider>
oracle.toplink.essentials.PersistenceProvider
</provider>
<class>com.application.entity.ProductEntity</class>
<properties>
<property name="toplink.jdbc.url"value="jdbc:sqlserver://localhost:1433;databaseName=Application"/>
<property name="toplink.jdbc.user" value="sa"/>
<property name="toplink.jdbc.password" value="Infosys1"/>
<property name="toplink.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
</properties>
</persistence-unit>
我已经在java构建路径和webcontent的lib文件夹中包含了以下JAR:
请帮帮我。提前感谢。在
persistence.xml
中,您应该有如下内容:
<persistence-unit name="myPersistenceUnit">
在您的情况下,代码中有
“Sub”
,文件中有“Application”
;代码希望创建一个名为“Sub”的持久化提供程序,但未定义该名称,因此出现错误消息:没有名为Sub的EntityManager的持久化提供程序
我将持久化单元名称更改为“Sub”,但得到相同的错误尝试添加事务类型=“RESOURCE\u LOCAL”
在持久化单元中,所以它是我按照您的建议尝试的。但是得到了同样的错误。然后你要么缺少依赖项(我没有使用TopLink),要么persistence.xml
(或一些JAR)不在类路径上;如果您使用的是Maven,它应该位于src下的resources
目录no中。实际上,我可以使用以下代码连接数据库:String dbURL=“jdbc:sqlserver://localhost\\sqlexpress”;字符串user=“sa”;字符串pass=“Infosys1”;conn=DriverManager.getConnection(dbURL、user、pass);但无法通过persistence.xml进行连接。我没有使用maven。这个问题与数据库无关,它可能与JPA没有在类路径上找到persistence.xml或单元有关。persistence.xml需要位于类路径上classes目录根目录下的meta inf目录中。如果您认为可以在类路径上找到它,请将TopLink logging属性设置为FINEST,以便记录问题:
<persistence-unit name="myPersistenceUnit">
Persistence.createEntityManagerFactory("myPersistenceUnit");