我们正在应用程序中实施Jersey 2.26并面临EntityManager的问题。我们正在使用JPA,持久化类打包在一个单独的jar中。
从以下链接参考: - How do I properly configure an EntityManager in a jersey / hk2 application?
我们可以运行本地查询,如:
em.createNativeQuery("select employee_name from employee where employee_id = 2406")
.getSingleResult();
但是
em.find(Employee.class,2406)
给出以下错误: -
org.hibernate.UnknownEntityTypeException:无法找到持久性:
的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
@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;
}
任何帮助都将不胜感激。
注意:不使用maven或spring。该应用程序部署在wildfdly 11
上答案 0 :(得分:0)
我们正在使用JPA,并且持久化类被打包在一个 单独的罐子。
我认为你需要告诉persistence.xml关于entites所在的jar,比如
...
<jta-data-source>java:jboss/datasources/TestPersistenceDS</jta-data-source>
<jar-file>../lib/a-separate.jar</jar-file>
...
注意:根据运行时环境,路径可能会有所不同,并且可能还需要增强jar中的实体。