【发布时间】:2013-10-11 18:44:27
【问题描述】:
你能给我一个java中的示例代码,如何正确使用hibernate会话吗?我想要一个控制器类来处理所有休眠操作(获取、更新、删除)。
private void addPersonToEvent(Long personId, Long eventId) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Person aPerson = (Person) session.load(Person.class, personId);
Event anEvent = (Event) session.load(Event.class, eventId);
aPerson.getEvents().add(anEvent);
session.getTransaction().commit();
}
这是正确的方法吗?我如何正确处理异常和回滚以避免连接池错误,如果在异常后连接没有正确关闭?
非常感谢
【问题讨论】:
-
尝试捕获异常。如果发生异常则transaction.rollback
-
在 finally 块中的 session.close() 之后?