私はここでこのことを実行しようとしています。
public List<String> getOnlineUsers(){
List<User> d=sessionfactory.getCurrentSession().createQuery("from User").list();
List<String> onlineUsers=null;
List<Integer> timediff=null;
for(int i=0;i<d.size();i++){
timediff=(List<Integer>)sessionfactory.getCurrentSession().createQuery("SELECT TIMESTAMPDIFF(SECOND,'"+d.get(i).getLastUpdated()+"',now())").list();
}
for(int i=0;i<timediff.size();i++){
System.out.println("time "+timediff.get(i));
if(timediff.get(i)<=120){
onlineUsers.add(d.get(i).getUsername());
}
}
return onlineUsers;
}
しかし、私はこのエラーメッセージを受け取っています
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: Failed to invoke handler method [public org.springframework.web.servlet.ModelAndView com.beingjavaguys.controller.HomeController.showOnlineUsers(java.lang.String,org.springframework.validation.BindingResult)]; nested exception is java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'TIMESTAMPDIFF' {originalText=TIMESTAMPDIFF}
\-[EXPR_LIST] SqlNode: 'exprList'
+-[IDENT] IdentNode: 'SECOND' {originalText=SECOND}
+-[QUOTED_STRING] LiteralNode: ''2013-09-08 01:02:11.0''
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'now' {originalText=now}
\-[EXPR_LIST] SqlNode: 'exprList'
エラーメッセージを考えることさえできません。これを見た瞬間に空白になりました。なぜ私はそれを思いついたのですか?