这些方法之间有什么区别,哪一种更好?到目前为止,我有如下代码:
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;
}