【发布时间】:2013-04-27 11:19:48
【问题描述】:
假设我有以下 HQL
EntityManager.createQuery("SELECT a FROM a WHERE a.b = :par OR a.c = :par").setParameter("par", obj);
似乎不起作用。有人知道如何仅使用一个参数来解决此问题吗?
【问题讨论】:
-
你得到什么错误?
-
没有错误。结果列表只是空的。
-
您有有效数据吗?尝试在 persistence.xml 中启用 - showsql = true 并获取原始 sql
-
数据有效。当我只使用“OR”的左侧或右侧时,一切正常
-
好吧,我很确定它将第一个参数设置为正确,然后它只执行查询而没有第二个参数。你可以设置参数,比如
*.setParameter(0, par)和*.setParameter(1, par)