0

私はここでこのことを実行しようとしています。

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'

エラーメッセージを考えることさえできません。これを見た瞬間に空白になりました。なぜ私はそれを思いついたのですか?

4

1 に答える 1