2

私のEntityクラスには、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;
    }

しかし、アプリケーションを実行すると、次の例外が発生します

例外 名前付きクエリが不明です: getEmp SEVERE: org.hibernate.MappingException: 名前付きクエリが不明です: org.hibernate.internal.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:149) の getEmp org.hibernate.internal.SessionImpl.getNamedQuery(SessionImpl) .java:1257) net.test.employees.dao.EmployeesDAO.getEmployees(EmployeesDAO.java:34) で net.test.employees.service.EmployeesService.getEmployees(EmployeesService.java:24) で

この問題を解決するにはどうすればよいですか? どんな助けも非常に高く評価されます。

4

1 に答える 1

2

applicationContext.xmlに以下を追加することで問題を解決しました。

<property name="annotatedClasses">  
          <list>
           <value>net.test.model.Employees</value>
           </list>  
           </property>
于 2012-12-11T05:51:57.857 に答える