如何在 HQL 查询中传递参数

How to pass parameter in HQL query

在我的 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 的值,但我不知道如何执行此操作。 请帮忙..!! 提前致谢..!!

简单示例:

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

我给一个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 你可以简单地使用变量而不是它

命名参数

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");