2017-08-16 23 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(ユーザーユーザー){ EntityManager em = EntityManagerHelper.getEntityManager();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

関連する問題