Hibernate 中使用了meger()保存一次正常,第二次一直等着

搬砖的IT农民工 2014-05-20 11:18:07
刚开始在hibernate保存一个一对多的关系时用save();结果Illegal attempt to associate a collection with two open sessions;然后用meger(),但是用了发现第一次正常保存进数据库,但是第二次执行的时候一直停在那个页面不动了。

DAO:
public boolean saveRes(Reservation res){
Transaction tx = null;
Session session = null;
//System.out.println("Doctorname:"+res.getDoctorname()+"username" +res.getUsername());
try {
session = getSession();
tx = session.beginTransaction();
session.merge(res);
tx.commit();
return true;
} catch (Exception e) {
if(tx != null) tx.rollback();
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return false;
}
Action:
public String saveRes(){

HttpServletRequest request=ServletActionContext.getRequest();
int docid=Integer.parseInt(request.getParameter("docid"));
String userid=request.getParameter("userid");
String time=request.getParameter("res_time");
String dtime=request.getParameter("date");
String res_time=time+" "+dtime;


User u=iservice.findUserById(userid);
Doctor d=iservice.findDoctorById(docid);
System.out.println("u:"+userid+"d"+docid+"time:"+res_time);

Reservation reservation=new Reservation();
reservation.setRes_time(res_time);
reservation.setDoctor(d);
reservation.setUser(u);

if(iservice.saveRes(reservation)){
return SUCCESS;
}
vo类:
public class Reservation {
private Integer res_id;
private String res_time;
private Integer res_num;
private Integer res_password;
private String res_status;
private User user;
private Doctor doctor;
省略setget
}
...全文
180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其中的连接没有关闭
  • 打赏
  • 举报
回复
reservation xml <many-to-one name="doctor" lazy="false" class="org.onlinehospital.vo.Doctor" fetch="select" cascade="all"> <column name="doc_id" not-null="false"/> </many-to-one> <many-to-one name="user" lazy="false" class="org.onlinehospital.vo.User" fetch="select" cascade="all"> <column name="user_identity" not-null="false"/> </many-to-one> doctor xml <set name="reservation" inverse="true" lazy="false" cascade="all"> <key column="doc_id" not-null="true"/> <one-to-many class="org.onlinehospital.vo.Reservation" /> </set> user xml <set name="reservation" inverse="true" lazy="false" cascade="all"> <key column="user_identity" not-null="true"/> <one-to-many class="org.onlinehospital.vo.Reservation" /> </set> 省略其他的参数了!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧