Ime*_*iri 1 java spring hibernate struts2 detachedcriteria
我DetachedCriteria这里有一个Hibernate 代码.我java.util.ArrayList cannot be cast to java.lang.Long在运行应用程序时收到了!基本上我在这里做的是有两个列表,每个列表都有酒店和税.这里的逻辑是如果指定酒店和税,加载必要的数据!如果他们没有加载一切!当我保持酒店未被选中并选择税时我收到上述错误.如果我选择酒店并将税款留空,我会得到预期的结果.
//Use if hotel is specified
if(searchCriteria.getHotel().getId() != null){
dc.add(Restrictions.eq("h.id", searchCriteria.getHotel().getId()));
}else if(hotels != null && !hotels.isEmpty()){
Collection<Long> hotelIds = new ArrayList<Long>();
for(Hotel h : hotels){
hotelIds.add(h.getId());
}
dc.add(Restrictions.eq("h.id",hotelIds));
}
//use if tax is specified
if(searchCriteria.getTax().getId() != null){
dc.add(Restrictions.eq("t.id", searchCriteria.getTax().getId()));
}else if(tax != null && !tax.isEmpty()){
Collection<Long> taxIds = new ArrayList<Long>();
for(Tax t : tax){
taxIds.add(t.getId());
}
dc.add(Restrictions.eq("t.id",taxIds));
}
//Order Result
dc.addOrder(Order.asc("h.id"));
dc.addOrder(Order.asc("t.code"));
Run Code Online (Sandbox Code Playgroud)
请让我知道我在这里做错了什么!
使用Restrictions.in("t.id",taxIds)而从集合匹配的项目.
这里Restrictions.eq("t.id",taxIds),taxIds是ArrayList,t.id是Long,因此java.util.ArrayList无法转换为java.lang.Long异常
| 归档时间: |
|
| 查看次数: |
2530 次 |
| 最近记录: |