java - JPA异常: Object: is not a known entity type

标签 java hibernate jpa

我是 JPA 新手,遇到了问题。我读到问题可能与 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="GreekTravelPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>entities.Room</class>
<class>entities.Country</class>
<class>entities.User</class>
<class>entities.RoomType</class>
<class>entities.Role</class>
<class>entities.Photo</class>
<class>entities.Availability</class>
<class>entities.Message</class>
<class>entities.Location</class>
<class>entities.Booking</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
  <property name="javax.persistence.jdbc.url"     value="jdbc:mysql://localhost:3306/greektraveldb?zeroDateTimeBehavior=convertToNull"/>
  <property name="javax.persistence.jdbc.user" value="psilos"/>
  <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
  <property name="javax.persistence.jdbc.password" value="psilos"/>
  <property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>

我的异常(exception):

java.lang.IllegalArgumentException: Object: org.eclipse.persistence.internal.jpa.EntityManagerImpl@665ba601 is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3510)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.mergeCloneWithReferences(RepeatableWriteUnitOfWork.java:384)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3481)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.mergeInternal(EntityManagerImpl.java:542)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.merge(EntityManagerImpl.java:519)

实际代码是

@Override public void update(User user) { 
    EntityManager em = EntityManagerHelper.getEntityManager(); 
    try { 
        EntityTransaction entityTrasacrion = em.getTransaction(); 
        entityTrasacrion.begin(); 
        em.merge(em); 
        entityTrasacrion.commit(); 
    } catch (RuntimeException e) { 
        throw e; 
    } finally { 
        EntityManagerHelper.closeEntityManager(); 
    } 
}

最佳答案

您正在将实体管理器与实体管理器合并!!!哎呀!

em.merge(em);

需要

em.merge(user);

关于java - JPA异常: Object: is not a known entity type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703580/

相关文章:

Hibernate hbm2ddl.auto=update 不更新 MySQL 中的列定义

rest - 错误: Getters of lazy classes cannot be final Kotlin Spring Boot

java - Container.getComponents() 是否返回对原始组件的引用?

java - 链表类。 (反射操作异常)

mysql - 在 JBoss 上部署时出现 C3P0ConnectionProvider 错误

java - 如何使用 hibernate 逆向工程排除多对一关系?

java - 如果我在更新期间将 json 中的空 id 传递给子实体,为什么 Hibernate 会插入新记录

scala - SBT:如何运行注释处理插件

java - 在运行时更改 Guice 绑定(bind)

java - 在 JavaFx 中创建自定义控件的问题