2014-07-25 23 views
-1

我只想从数据库中检索一个对象,即实现我的查询,但我得到异常。无法从数据库中获取对象

@Override 
public Tache getLastSousTache() { 
    Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    String sql = "select * from tache where idtache=(select max(idTache) from tache where soustache is not null)"; 
    Query query = session.createSQLQuery(sql); 
    Tache tache = new Tache(); 
    tache = (Tache) query.uniqueResult(); 
    return tache; 
} 

我得到这个异常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.model.Tache 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
+0

为什么'new Tache()'?这没有意义。 'Tache'是Hibernate管理的POJO吗? – Bart

回答

0

你真的需要初始化类环节存在?

它的工作,如果你只是说:

环节存在环节= NULL; tache =(Tache)query.uniqueResult();

所以无需编码:

环节存在环节=新环节 - ();

+1

仍然有相同的异常 – Ouda

+1

我假设您在Hibernate中使用Native SQL,但它与HQL有所不同。 你在你的sql查询中使用idtache,但'idtache'没有设置为参数。同时将您的类添加到查询中也是一个好主意。 – Davy

+0

没有Native SQL,它就像这样: @Override public Tache getLastSousTache(long myTacheid){ Session session = HibernateUtil.getSessionFactory()。getCurrentSession(); session.beginTransaction(); Tache tache = null; String queryString =“from Tache where id =:id”; Query query = session.createQuery(queryString);查询.setLong(“id”,myTacheid); tache =(Tache)query.uniqueResult(); return tache; } 你是sqlquery有点不同,所以你必须查找它... – Davy