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

发布于 2024-11-29 01:58:01 字数 637 浏览 0 评论 0原文

你们中是否有人遇到过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福丶如此 2024-12-06 01:58:01

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

After you posted the query Hibernate was generating, I noticed that session.getId() was inserting TestSession - 1 instead of TestSessionId - 1, which was in your hard coded example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文