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;
}