如何在 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");
在我的 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");