小编Kar*_*hik的帖子

java.lang.ClassCastException:java.math.BigDecimal无法转换为java.lang.Long

我在 OrderService.java 中有这段代码

    public void deleteOrderByUserId(int userId){
       List<Long> orderIds = orderDAO.getOrderIdByUserId(userId);
       int deleteOrders = orderDAO.deleteOrders(orderIds);
    }
Run Code Online (Sandbox Code Playgroud)

这是 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;
     }    
Run Code Online (Sandbox Code Playgroud)

执行此步骤时, 我收到java.lang.ClassCastException: java.math.BigDecimal …

java hibernate hql

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

hibernate ×1

hql ×1

java ×1