在我的实体类中,我有以下内容,调用返回 sys_refcursor 的 oracle 函数
@Entity
@javax.persistence.NamedNativeQuery(name = "getEmp",
query = "{ ? = call getemployees }", resultClass = Employees.class, hints = {
@javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })
@Table(name = "EMPLOYEES")
public class Employees {
在 DAO 中我有
@Inject
private SessionFactory sessionFactory;
@Override
public List<Employees> getEmployees() {
List query = new ArrayList<Employees>();
try{
query = sessionFactory.getCurrentSession()
.getNamedQuery("getEmp").list();
}
catch(Exception e){
System.out.println("exception "+e.getMessage());
e.printStackTrace();
}
return query;
}
但是当我运行我的应用程序时,我收到以下异常
exception Named query not known: getEmp SEVERE: org.hibernate.MappingException: Named query not known: getEmp at org.hibernate.internal.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:149) at org.hibernate.internal.SessionImpl.getNamedQuery(SessionImpl.java:1257) at net.test.employees.dao.EmployeesDAO.getEmployees(EmployeesDAO.java:34) at net.test.employees.service.EmployeesService.getEmployees(EmployeesService.java:24)
如何解决这个问题?任何帮助都非常值得赞赏。
最佳答案
我通过在 applicationContext.xml 中添加以下内容解决了该问题。
<property name="annotatedClasses">
<list>
<value>net.test.model.Employees</value>
</list>
</property>
关于java - 严重 : org. hibernate.MappingException:命名查询未知:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13804635/