在对一个订单表保存时候出了一个异常·请帮忙看一下
2013年10月31日 10:11:45 ERROR [org.apache.struts2.dispatcher.Dispatcher:38] http-8880-7 - Exception occurred during processing request: Illegal attempt to associate a collection with two open sessionsorg.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
在网上看了看说是有两个session,
我在业务层加了@Transactional session
@Service("OrdersService")
@Transactional
public class OrdersServiceImpl implements IOrdersService{
@Resource
private IOrdersDao OrdersDao;
public void saveOrders(Orders orders) {
OrdersDao.save(orders);
}
}
得到的session也用的getCurrentSession() 按照道理
seeion的开关不都是由spring给管理了?
那怎么会又多出一个session?
请给我点拨一下,
说明: 这个订单表里面有个货物表和费用表和客户表 我在订单的many to one里设置了级联
cascade="save-update,persist" 在保存订单的时候会先去保存 货物表 费用表 和 客户表
不知道这样写有没有什么问题
异常 session --------------------编程问答-------------------- 有两个不同的session在操作,建议使用merge方法代替save或者update,merge()在hibernate3以上的版本才有,用来合并当前所有开启的session
补充:Java , Java EE