2017-08-16 59 views
0

我是JPA新手,遇到问题。我读到了这个问题可能与persistence.xml。JPA异常:对象:不是已知的实体类型

<?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> 

我Exeption:

java.lang.IllegalArgumentException: Object: [email protected] 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(); 
    } 
} 
+1

我们还需要引起异常的代码。 – corsiKa

+0

'@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;最终{ EntityManagerHelper.closeEntityManager(); } }' – psilos

+0

我想更新。在此链接中查找[链接](https://kodejava.org/how-do-i-update-entity-object-using-jpa/) – psilos

回答

3

你与实体管理器合并实体管理器!哎呀!

em.merge(em); 

需要是

em.merge(user); 
+0

我现在看到谢谢。不良复制过去。 – psilos

相关问题