gpt4 book ai didi

java - Hibernate 查询 - ClassCastError

转载 作者:行者123 更新时间:2023-12-01 14:37:40 25 4
gpt4 key购买 nike

"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.typec.datesum(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com