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

标签 java sql hibernate persistence hql

你们中是否有人遇到过 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();

适用于存在此类条目的测试数据。

有什么建议吗?谢谢

最佳答案

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

关于java - 为什么 HQL-Query 中的参数替换失败但 native 类型成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6988985/

相关文章:

java - 在这种情况下如何正确调用构造函数?

java - 从 Mysql 中检索并在 JSP 中显示数据

java - Hibernate 查询(不是 SQL)日志记录

java - Hibernate Envers - 审计实体无法从空的审计表关系中恢复 ID

java - JUnit 测试(使用 Spring MVC 和 Hibernate): IllegalArgumentException: Unknown entity

java - 如何使用 mallet 获得单词主题概率

java - 使用java泛型来扩展接口(interface)还是只是糟糕的设计?

sql - DB2 从 YYYYMMDD 转换为日期

php - SQL connect.php 安全风险?

MySQL - 如何订购连接表?