作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
"select c.type, c.date, sum(c.amount) from CustomerPayment c where c.date like '%" + year + "' and c.type='Cash'"
由于我的 select 语句,上面的 hibernate 查询给出了 ClassCastError。
我怎样才能正确地写它?是否需要使用标准进行求和? y 对于上述查询有什么好处?我很困惑。
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to CustomerPayment
at tekirmobile.clController.getTotalCash(clController.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
由于上述查询,我收到这些错误
最佳答案
您正在选择三个属性:c.type
、c.date
和 sum(c.amount)
,这意味着每个结果将是一个 Object[],包含三个选定属性中的每一个。您无法将其转换为 CustomerPayment。
如果 CustomerPayment 有兼容的构造函数,您可以执行类似的操作
select new CustomerPayment(c.type, c.date and sum(c.amount)) ...
或者你可能会做类似的事情
"select c, c.type, c.date, sum(c.amount) from CustomerPayment c ... "
Object[] result = query.uniqueResult();
CustomerPayment payment = (CustomerPayment) result[0];
但是,然后我不确定您需要总和做什么,您没有在 where 子句中的任何地方使用总和。它有点不清楚你想要完成什么。例如,您希望 uniqueResult 的结果是什么? CustomerPayment 实例?或值列表?
关于java - Hibernate 查询 - ClassCastError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327792/
这个问题已经有答案了: ClassCastException when i query (2 个回答) 已关闭10 年前。 "select c.type, c.date, sum(c.amount)
注意:这不是交叉发布(尽管它与我的其他问题 shared objects between webapps of the same tomcat 相关) 我有 2 个 Web 应用程序在两个上下文中运行
我是一名优秀的程序员,十分优秀!