java – Ich habe eine HQL-Frage und sie frustriert mich seit einem Tag.
高洛峰
高洛峰 2017-05-16 13:23:28
0
3
440

@SuppressWarnings("JpaQlInspection")

@Override
public String queryUGI(String openid, String ka) {
    String hql="from UserGameInformation as ugi where ugi.ka=?0 and ugi.openid=?1";
    Session session = this.getSession();
    Query query = session.createQuery(hql);
    query.setParameter(0, ka);
    query.setParameter(1,openid);
    UserGameInformation userGameInformation = (UserGameInformation)query.list().get(0);
    String result=userGameInformation.getTime();
    return result;
}

Dies ist mein HQL für den Betrieb der Datenbank

@RequestMapping(value = "/summary",method= RequestMethod.POST)

@ResponseBody
public void summary(HttpServletRequest request)
{
    String ka = request.getParameter("ka");
    String time = request.getParameter("time");
    HttpSession session = request.getSession();
    UserEntity userEntity = (UserEntity) session.getAttribute("user");
    String t = userGameInformationService.queryUGI(userEntity.getOpenid(),ka);
    if(t==""){
        System.out.println("dkhdhfkdfhkldf");
        UserGameInformation ugi = new UserGameInformation();
        ugi.setOpenid(userEntity.getOpenid());
        ugi.setKa(ka);
        ugi.setTime(time);
        userGameInformationService.addUserGameInformation(ugi);
    }
    else if(Integer.parseInt(t)<Integer.parseInt(time)){
      return;
    }
    else {
        UserGameInformation ugi = userGameInformationService.findUser(userEntity.getOpenid(),ka);
        ugi.setKa(ka);
        ugi.setTime(time);
        ugi.setOpenid(userEntity.getOpenid());
        userGameInformationService.updateUserGameInformation(ugi);
    }

}

Ich rufe an

Ursprünglich war es letzte Nacht verfügbar, aber wenn Sie nicht wissen, was heute passiert ist, hat es immer noch nicht funktioniert. Die Debug-Ausführung ging nach diesem Satz zu anderen Quellen . Ich habe gerade darauf geklickt, um es anzupassen. Die Konsole meldet keinen Fehler, aber ich kenne den Grund nicht. . .

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(3)
某草草

谢谢各位大神们的帮忙,我已经解决了,hql用问号竟然不可以,要用冒号才可以,我也是看不懂

曾经蜡笔没有小新

单步调试吧 先把hql的别名去掉

Peter_Zhu

先观察下t的值,很有可能是满足了这个条件
Integer.parseInt(t)<Integer.parseInt(time)

返回了空值,因此数据库中的数据才未发生变动。
如果不是,再排查自己其它相关代码有没有不妥的地方,更改过来。
另外,不知道你的hql语句是否正确,我所了解的应该这么写,比如
from Student s where s.id=? and s.name=?

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage