我在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);
}
我尝试了这个,但没有帮助
java.sql.Date startDate = (java.sql.Date)planQuery.getFirstResult().getStartDate();
感谢您的帮助。
答案 0 :(得分:1)
您的$paths = [
[
'name' => 'file',
'ext' => 'txt',
'path' => '/folder/'
],
[
'name' => 'subFolder',
'ext' => 'folder',
'path' => '/folder/'
],
[
'name' => 'fileInSubFolder',
'ext' => 'txt',
'path' => '/folder/subFolder/'
]
];
if( $paths[$i]['ext'] == 'folder' ) {
$zip->addEmptyDir($fileName);
} else {
// This would create "/folder/subFolder/fileInSubFolder.txt"
$fullFileName= $paths[$i]['path'] . $paths[$i]['name'] . "." . $paths[$i]['ext'];
$zip->addFromString( $fullFileName, /* File Data Here */);
}
预计会返回TypedQuery
,但查看查询本身,会返回ProductionPlanResource
,这似乎是日期而不是MIN(e.startDate)
。< / p>
答案 1 :(得分:1)
该异常告诉您有一个Date被强制转换为ProductionPlanResource。这就是问题所在。
TypedQuery<ProductionPlanResource> planQuery = ...
...select MIN(e.startDate) from ...
结果是Date,TypedQuery用于ProductionPlanResource类型。
尝试更改为:
TypedQuery<Date> planQuery
答案 2 :(得分:0)
你可以尝试.getTime()然后转换,因为java和sql都会读取long值。