我在hibernate状态下写了下面的查询,它给了我NullPointerException
SELECT new com.reddy.ReddyDTO( col1, IF(STRCMP(COL8, 'zero')=0, 'string', col2) )
FROM entity
但是,它使我陷入了NPE,因为它无法将第二列的数据类型确定为字符串类型。
我可以看到它无法通过查看org.hibernate.hql.ast.tree.ConstructorNode.resolveConstructor(String path)
方法中的以下位置来确定类型,该字段constructorArgumentTypes
具有值(org.hibernate.type.StringType, null)
如何使hibernate了解此列为String数据类型?(我已经尝试将“ string”放在双引号中,但这给了我错误)
嗯…这是什么IF
表情?我在参考文档中找不到它。据我所知,最接近的是一个case
表达式:
“简单”的情况下,当…然后… else …结束的情况,“搜索”的情况下,当…然后… else …结束的情况
但是我怀疑您可以在构造函数表达式中使用它。
更新: 看来Hibernate比我想象的要好,您 可以 在构造函数表达式中使用一种情况:
SELECT new com.reddy.ReddyDTO(col1, case col8 when 'zero' then 'string' else col2 end) FROM entity
问题内容: 我已经使用Seam 2.2.1和MySQL编写了一个正在运行的应用程序。我现在尝试将应用程序连接到 Informix, 并且当我从 hibernate ()执行查询时,出现以下异常: org.hibernate.exception.genericjdbcexception无法执行查询 当我执行查询时,执行成功。 生成的sql是 选择前2个user0_.USER_ID作为USER1_12
问题内容: 我正在使用hibernate状态向下转换query.uniqueResult()来处理问题。我有2类:-UserBean-UserLogin 在第一个中,我具有所有表字段以及所有处理数据的方法的映射。相反,第二个仅代表将存储在用户会话中的一些用户数据。 在登录方法的特定点,我执行查询并得到1行(我已经检查了查询是否确实返回了一些结果)。关键是我无法从Object类型(即query.un
问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎完全没有文档,因此我完全不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此这使我在这里提出了疑问。 问题答
问题内容: 我在代码中使用了条件查询。它总是会开火 相反,我想忽略查询中的一列(字段),因为该字段以字节为单位存储大量数据。这会导致性能问题。 有人可以对此提出想法吗? 一些更新 我在查询中添加了一个投影,它创建了一个查询,例如… 现在的问题就像.. 和y8_的相同错误,y5_表示所有接近它给出错误的地方。 我将其修改为Query … 而且有效。但是我不知道如何在HQL中对其进行修改? 问题答案:
问题内容: 我一直在努力寻找可以通过JPA中的方法调用设置的所有提示的权威资源,但我的想法是空的。有人知道很好的参考吗? 问题答案: 请参阅“ 3.4.1.7。查询提示” 。
问题内容: 我想按数据库中的条件计数记录数。 我尝试使用下一个查询 但是没有方法可以执行此操作并获得结果。 我知道,我可以使用 所以问题是,查询是否具有更高的性能?如果,那么如何执行查询呢? 问题答案: 您可以通过调用来执行第一个查询,例如。 如果要将计数分配给变量,则需要将其转换为适当的类型(它可以取决于DB,但很可能是Long)。第二个查询效率很低,因为Hibernate需要从数据库中检索整个