ClassCastException:java.util.Date不能强制转换为

ClassCastException:java.util.Date不能强制转换为,java,cuba-platform,Java,Cuba Platform,我正在使用CUBA-FRAMEWORK中的服务执行一些数据操作,并出现以下错误: ClassCastException: java.util.Date cannot be cast to com.company.gms.entity.ProductionPlanResource 错误源于以下代码行: matReqDate = DateUtils.addDays((Date)planQuery.getFirstResult().getStartDate(), daysOffset);

我正在使用CUBA-FRAMEWORK中的服务执行一些数据操作,并出现以下错误:

ClassCastException: java.util.Date cannot be cast to com.company.gms.entity.ProductionPlanResource
错误源于以下代码行:

matReqDate = DateUtils.addDays((Date)planQuery.getFirstResult().getStartDate(), daysOffset);
                                            }
关于以下内容的附加代码:

    Date reqShipDate = soline.getRequiredShipDate();
                                                Date matReqDate;
                                                TypedQuery<ProductionPlanResource> planQuery = persistence.getEntityManager()
                                                        .createQuery("select MIN(e.startDate) from mydb$ProductionPlanResource e " +
                                                                " where e.productionPlan.salesOrder.id = ?1 AND e.article.id = ?2", ProductionPlanResource.class);
                                                        planQuery.setParameter(1, soline.getSalesOrder().getId()).setParameter(2, article.getId());

                                                if (planQuery.getResultList().size() > 0) {

                                                    matReqDate = DateUtils.addDays((Date)planQuery.getFirstResult().getStartDate(), daysOffset);
                                                }

谢谢您的帮助。

您可以尝试.getTime()然后转换,因为java和sql日期都读取长值。

您可以尝试.getTime()然后转换,因为两者都读取长值,java和sql日期。

您的
TypedQuery
预计将返回
ProductionPlanResource
,但查看查询本身,它会返回
MIN(例如startDate)
似乎是日期而不是
生产计划资源

您的
类型查询
应返回
生产计划资源
,但查看查询本身,它返回
分钟(即开始日期)
似乎是日期而不是
ProductionPlanResource

异常告诉您有一个日期转换为ProductionPlanResource。这就是问题所在

TypedQuery<ProductionPlanResource> planQuery =  ...
...select MIN(e.startDate) from ...
TypedQuery平面查询=。。。
…从…中选择最小值(例如开始日期)。。。
结果是日期,TypedQuery用于ProductionPlanResource类型

尝试更改为:

TypedQuery<Date> planQuery
TypedQuery平面查询

异常告诉您有一个日期转换为ProductionPlanResource。这就是问题所在

TypedQuery<ProductionPlanResource> planQuery =  ...
...select MIN(e.startDate) from ...
TypedQuery平面查询=。。。
…从…中选择最小值(例如开始日期)。。。
结果是日期,TypedQuery用于ProductionPlanResource类型

尝试更改为:

TypedQuery<Date> planQuery
TypedQuery平面查询

planQuery.getFirstResult().getStartDate()的类型是什么?是java.util.Date吗?或者java.sql.Date?。可以打印getClass().getName()并查看输出内容吗?planQuery.getFirstResult().getStartDate()的类型是什么?是java.util.Date吗?或者java.sql.Date?。可以打印getClass().getName()并查看输出内容吗?