Каковы различия между этими подходами и какой из них лучше? До сих пор я не имею куски кода, как следующее:spring/hibernate: открыть/закрыть сессию каждый раз VS getCurrentSession
public void delete(Song song) {
session = sessionFactory.getCurrentSession();
session.delete(song);
session.flush();
}
, но запись не всегда удаляется, когда выше код запускается (именно: ID = 1 никогда не удаляется и другие идентификаторы удаляются всегда). Я читал, что сохранение открытого сеанса немного ускоряет работу приложения - вот почему я делю сессионный объект. Мой бизнес-объект получить сеанс завода через DI:
@Autowired
private SessionFactory sessionFactory;
Session session = null;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}