1
这些方法之间有什么区别,哪一个更好?到现在为止我遇到的代码片段如下所示:spring/hibernate:每次打开/关闭会话VS getCurrentSession
public void delete(Song song) {
session = sessionFactory.getCurrentSession();
session.delete(song);
session.flush();
}
,但上面的代码在运行时的记录并不总是删除(准确地说:ID = 1从不删除和其他ID始终删除)。我读到,保持打开的会话加快了应用程序的速度 - 这就是为什么我共享会话对象。我的业务对象通过DI获取会话工厂:
@Autowired
private SessionFactory sessionFactory;
Session session = null;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}