Spring MVC + Hibernate + Session Factory
Следующий вопроc. Есть Spring MVC приложение - круд, есть сервис, есть дао. В Дао мы получаем SessionFactory из конфига. Имет ли смысл заводить в дао сессию и открывать - закрывать её
@Repository
public class UserDaoImpl implements UserDao {
// заменить на Entity Manager
private SessionFactory sessionFactory;
private Session session;
@Autowired
private UserDaoImpl(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public void addUser(User user) {
session = sessionFactory.openSession();
session.save(user);
session.close();
}
Или эта операция излишняя и можно делать так
@Override
public void addUser(User user) {
sessionFactory.getCurrentSession().save(user);
}
В чем принципиальная разница и как будет правильнее?
Ответы (1 шт):
Автор решения: Evgenii Baulin
→ Ссылка
а почему не использовать спринговые репозитории? тогда не надо будет свое DAO. Если операции стандартные, то это будет правильнее.
Если нужно будет как-то кастомизировать, то написать реализацию интерфейса и заинжектить туда EntityManager, а Спринг сам все разрулит. https://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories