【问题标题】:How to pass parameter in HQL query如何在 HQL 查询中传递参数
【发布时间】:2015-08-26 15:21:20
【问题描述】:

在我的 HQL 查询下方查找

 Query query = session.createQuery("select u from UserLog u where u.userLogSerialno = " + "(select max(uu.userLogSerialno) from UserLog uu where uu.userId = u.userId)");

此查询工作正常,但在此,我想传递 userId 的值,但我无法弄清楚如何执行此操作。 请帮助..!! 提前谢谢..!!

【问题讨论】:

    标签: sql hibernate hql


    【解决方案1】:

    名称参数

    String hql = "from com.baba.app.Model.Employee where mngId=:id or mngName=:name";
                Query q = ses.createQuery(hql);
                q.setParameter("id", 121);
                q.setParameter("name", "baba");
    

    参数

    String hql = "from com.baba.app.Model.Employee where mngId= ? or mngName= ?";
                Query q = ses.createQuery(hql);
                q.setParameter(0, 121);
                q.setParameter(1, "baba");
    

    【讨论】:

      【解决方案2】:

      将参数添加到 HQL 非常简单

      Query query = session.createQuery("select u from UserLog u where u.userLogSerialno = " + "(select max(uu.userLogSerialno) from UserLog uu where uu.userId = :userId)").setParameter("userId", 15);
      

      这里我硬编码了 15,你可以简单地使用变量来代替它

      【讨论】:

        【解决方案3】:

        简单示例:

        Integer id = 1;
        Query query = session.createQuery("from Employee e where e.idEmployee=:id");
        query.setParameter("id", id);
        

        【讨论】:

          猜你喜欢
          • 2023-03-06
          • 2018-09-26
          • 2021-06-07
          • 1970-01-01
          • 1970-01-01
          • 2019-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多