为什么HQL-Query中的参数替换失败但原生类型成功?

时间:2011-08-08 21:42:11

标签: java sql hibernate persistence hql

你们其中一个人遇到过HQL-Query中的参数替换无法解决的问题吗?

我正在使用hibernate,我认为,从我的MySQL数据库中获取实体的简单查询。

以下是查询:

entityManager.
            createQuery("SELECT c FROM PersistentEvent c WHERE c.sessionId LIKE :sessionId").
            setParameter("sessionId", session.getId()).getResultList();

没有得到结果!在调试中,我看到 session.getId()返回正确的值。

entityManager.
                createQuery("SELECT c FROM PersistentEvent c WHERE c.sessionId LIKE :sessionId").
                setParameter("sessionId", "TestSessionId - 1").getResultList();

适用于存在此类条目的testdata。

有什么建议吗?感谢

1 个答案:

答案 0 :(得分:3)

在您发布Hibernate生成的查询后,我注意到session.getId()正在插入TestSession - 1而不是TestSessionId - 1,这是您的硬编码示例。