I have this block of code in OrderService.java
public void deleteOrderByUserId(int userId){
List<Long> orderIds = orderDAO.getOrderIdByUserId(userId);
int deleteOrders = orderDAO.deleteOrders(orderIds);
}
This is the code in orderDAO.java
public List getOrderIdByUserId(int userId) {
StringBuilder queryStr = new StringBuilder("select distinct u.OrderId from ");
queryStr.append("User u where ");
queryStr.append("u.UserId in (:key)");
return getHibernateTemplate().getSessionFactory()
.getCurrentSession().createSQLQuery(queryStr.toString())
.setParameter("key", userId).list();
}
public int deleteOrders(List<Long> orderIds){
final String deleteOrder = "delete from Order o where o.OrderId in (:orderIds)";
final Query hibernateQuery = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(deleteOrder);
hibernateQuery.setParameterList("orderIds", orderIds);
int count = hibernateQuery.executeUpdate();
return count;
}
I'm getting an java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Long Exception while executing this step int count = hibernateQuery.executeUpdate();
What's wrong with that code and how to get rid of that exception
o.OrderIdaBigDecimalby chance?OrderIdin database tableOrder? Is itNUMBER?