当前位置:编程学习 > JAVA >>

在对一个订单表保存时候出了一个异常·请帮忙看一下

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 sessions
org.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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,