为什么 HQL-Query 中的参数替换失败但本机类型成功?
你们中是否有人遇到过 HQL 查询中的参数替换不起作用的问题?
我认为,我正在使用 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();
适用于存在此类条目的我的测试数据。
有什么建议吗?谢谢
did one of you ever had the problem that parameter substitution in a HQL-Query didn't worked?
I'm using hibernate for some, I think, simple queries getting entities from my MySQL Database.
Here are the Queries:
entityManager.
createQuery("SELECT c FROM PersistentEvent c WHERE c.sessionId LIKE :sessionId").
setParameter("sessionId", session.getId()).getResultList();
Doesn't get a result! Under debugging I saw session.getId() returns the right value.
entityManager.
createQuery("SELECT c FROM PersistentEvent c WHERE c.sessionId LIKE :sessionId").
setParameter("sessionId", "TestSessionId - 1").getResultList();
Works for my testdata where such an entry exists.
Any suggestions? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您发布 Hibernate 生成的查询后,我注意到
session.getId()
插入了TestSession - 1
而不是TestSessionId - 1
,这在你的硬编码示例中。After you posted the query Hibernate was generating, I noticed that
session.getId()
was insertingTestSession - 1
instead ofTestSessionId - 1
, which was in your hard coded example.