假设我有以下HQL
EntityManager.createQuery("SELECT a FROM a WHERE a.b = :par OR a.c = :par").setParameter("par", obj);
似乎不起作用。是否有人只使用一个参数就可以解决此问题?
setParameter(String name,Object val)
这用于将值绑定到命名参数。但是名称可以在查询中多次出现,这无关紧要。因此,请检查一次您是否确实有该查询的数据。
在此处查看文档
该文档中的一些主要文字
命名查询参数是查询字符串中形式为:name的标记。 通过调用setParameter(“ foo”,foo,Hibernate.INTEGER);将值绑定到整数参数:foo。例如。一个名称可能在查询字符串中出现多次。
如果仍然没有得到结果,则尝试使用两个名称并进行设置
EntityManager.createQuery(“从某处选择ab =:par1或ac =:par2”)。setParameter(“ par1”,obj).setParameter(“ par2”,obj);