2017-11-27 9 views
0

Wir implementieren Jersey 2.26 in unserer Anwendung und stellen Probleme mit EntityManager. Wir verwenden JPA und die Persistenzklassen sind in einem separaten Glas verpackt.Trikot 2.x JPA-Problem - org.hibernate.UnknownEntityTypeException: Konnte Persister nicht finden

Nahm Bezug von unten Link: - How do I properly configure an EntityManager in a jersey/hk2 application?

Wir können wie Native Abfragen ausführen:

em.createNativeQuery("select employee_name from employee where employee_id = 2406") 
    .getSingleResult(); 

Aber

em.find(Employee.class,2406) 

unterhalb Fehler geben: -

org.hibernate.UnknownEntityTypeException: Unable to locate persister:

persistence.xml

<persistence-unit name="TestPersistence" transaction-type="JTA"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <jta-data-source>java:jboss/datasources/TestPersistenceDS</jta-data-source> 
    <properties> 
     <property name="hibernate.cache.provider_class" 
        value="org.hibernate.cache.NoCacheProvider" /> 
     <property name="hibernate.connection.driver_class" 
        value="com.sybase.jdbc4.jdbc.SybDriver" /> 
     <property name="hibernate.dialect" 
        value="org.hibernate.dialect.SybaseDialect" /> 

Entity Mitarbeiter

@Entity 
@Table(name = "employee") 
public class Employee implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Id 
    @Column(name = "emp_id") 
    private Long empId; 

    @Column(name = "emp_name") 
    private String empName; 

public Long getEmpId() { 
    return empId; 
} 

public void setEmpId(Long empId) { 
    this.empId = empId; 
} 

public String getEmpName() { 
    return empName; 
} 

public void setEmpName(String empName) { 
    this.empName = empName; 
} 

Jede Hilfe würde geschätzt.

Hinweis: keine Maven oder Federn verwenden. wird die Anwendung auf wildfdly 11

+1

können Sie bitte weitere Informationen bereitstellen. Wie der Quelltext der Employee-Klasse und der persistence.xml –

+0

Danke Simon, habe die persistence.xml- und Employee-Klasse freigegeben. – gari004

+0

Wie erhalten Sie den EntityManager? Wie Sie in WildFly sind, können Sie es einfach wie @PersistenceContext privaten EntityManager em injizieren; –

Antwort

0

We are using JPA and the persistence classes are packaged in a separate jar.

Ich denke, entfalteten Sie in persistence.xml über das Glas, wo die entites sind, so etwas wie

... 
<jta-data-source>java:jboss/datasources/TestPersistenceDS</jta-data-source> 
<jar-file>../lib/a-separate.jar</jar-file> 
... 

HINWEIS sagen müssen: auf die Laufzeitumgebung Je Der Pfad kann variieren und auch die Entitäten im Jar müssen möglicherweise erweitert werden.

Verwandte Themen