StackOverflow上已经有很多关于这个错误消息的问题,但我找不到解决方案...
错误是:
严重:映射到响应的异常:500(内部服务器错误)
我的persistence.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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_2_0.xsd">
<persistence-unit name="createJPA" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>model.Cumulative</class>
<class>model.Date</class>
<class>model.Department</class>
<class>model.Holiday</class>
<class>model.Log</class>
<class>model.Member</class>
<class>model.Person</class>
<class>model.Project</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/resource_db"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax. persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.password" value=""/>
</properties>
</persistence-unit>
</persistence>
它由这行调用(这行没有错误):
EntityManagerFactory emf = Persistence.createEntityManagerFactory("createJPA", properties);
我的persistence.xml位于Project Explorer中的JPA内容下:
CreateEntityManagerFactory是:
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
EntityManagerFactory emf = null;
PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver();
List<PersistenceProvider> providers = resolver.getPersistenceProviders();
for (PersistenceProvider provider : providers) {
emf = provider.createEntityManagerFactory(persistenceUnitName, properties);
if (emf != null) {
break;
}
}
if (emf == null) {
throw new PersistenceException("No Persistence provider for EntityManager named " + persistenceUnitName);
}
return emf;
}
更新:JPAFactory(在createEntityManagerFactory函数中没有属性值)
package org.odata4j.producer.jpa;
import java.util.Properties;
import java.util.logging.Logger;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.odata4j.producer.ODataProducer;
import org.odata4j.producer.ODataProducerFactory;
public class JPAProducerFactory implements ODataProducerFactory {
private final Logger log = Logger.getLogger(getClass().getName());
public static final String PUNAME_PROPNAME = "odata4j.jpa.persistenceUnitName";
public static final String NAMESPACE_PROPNAME = "odata4j.jpa.edmNamespace";
public static final String MAX_RESULTS_PROPNAME = "odata4j.jpa.maxResults";
@Override
public ODataProducer create(Properties properties) {
String persistenceUnitName = properties.getProperty(PUNAME_PROPNAME);
if (persistenceUnitName == null || persistenceUnitName.length() == 0)
throw new RuntimeException("Missing required property: " + PUNAME_PROPNAME);
String edmNamespace = properties.getProperty(NAMESPACE_PROPNAME, "");
String maxResults = properties.getProperty(MAX_RESULTS_PROPNAME, "50");
log.info(String.format("Using persistence unit [%s] with edm namespace [%s] and max results [%s]", persistenceUnitName, edmNamespace, maxResults));
log.info("Persistence name is:" + persistenceUnitName);
EntityManagerFactory emf = Persistence.createEntityManagerFactory("createJPA");
JPAProducer producer = new JPAProducer(emf, edmNamespace, Integer.parseInt(maxResults));
return producer;
}
}
对于标准JavaSE应用程序,将META-INF\persistence.xml
放在src
文件夹的根目录中。
如果您使用的是JEE容器托管实体管理器,那么一定要使用JTA
作为事务类型,而不是resource_local
。然后确保WebContent->META-INF
包含persistence.xml
。
例如。
<persistence-unit name="createJPA" transaction-type="JTA">
<jta-data-source>jdbc/MyDatasource</jta-data-source>
</persistence-unit>
我根本无法解决这个问题,而且有大量的堆栈溢出帖子都带有相同的错误消息。我都试过了,但还是没能成功。也许我在寻找一些小东西。我真的需要帮助,提前谢谢你。 错误消息 这是persistence.xml文件 EntityManagerFactory
问题内容: Hibernate 5.1.1和5.2.2之间发生了什么变化?如果我使用5.2.2,则会收到错误消息“名为pu的EntityManager没有持久性提供程序”。完全相同的配置适用于5.1.1。我应该如何更改代码以使5.2.2正常工作? pom.xml src / main / resources / META-INF中的persistence.xml 创建EntityManager 问
问题内容: 我在目录下使用相同的名字。然后,我用以下代码调用它: 但是,我收到以下错误消息: 这是: 它应该在类路径中。但是,我得到了上面的错误。 问题答案: 在之后,定义持久性提供程序名称:
我试图在Eclipse中测试我的hibernate maven应用程序,当我运行获取enttity类名称的方法时,我得到了以下异常: 这是persistence.xml: 这是使用以下方法的类: 波姆。xml: 我尝试更改持久性的版本号、更改xmlns、提供程序的名称,但仍然是例外。
我在REST服务器上工作,同时学习EJB\Hibernate。当服务调用DAO时,我面临一个问题,即它找不到我的持久性单元。 在本例中,我得到“无法为unitName PersistenceUnit检索EntityManagerFactory” 然后我试试这个: null pom.xml
我正在尝试调用persistence.xml来显示Netbean IDE中数据库中的一些数据。我已经查看并尝试了以前用户提出的不同方法,但我仍然无法解决这个问题。 我用这个来称呼持久性单元, 这是我试图运行文件时返回的结果, 这是第805行,错误似乎就是从这里产生的 如前所述, 我已经在持久化单元名称下添加了提供者, 我已经确保持久性是单元在META-INF文件夹中, 它在类路径中,所以我不确定错