Я могу сохранить объект без @Transactional
в моем приложении Spring Boot.Я заметил это только потому, что не смог обновить сущность, пока не добавил @Transactional
в метод save
в EmployeeService.java
.
. У меня нет @Transactional
, аннотированных на уровне класса,Единственное другое место, где он находится, - это методы в слое моей службы, которые не относятся к методу save
.Мой EmployeeDAO
не распространяется JPARepository
.Он помечен @Repository
.У меня spring-boot-starter-data-jpa
как зависимость.Я не начинаю и не совершаю транзакцию вручную.
EmployeeRestController.java
@PostMapping("/employees")
public void addEmployee(@RequestBody Employee employee) {
employee.setId(0);
employeeService.save(employee);
}
EmployeeService.java
public void save(Employee employee) {
emplDAO.save(employee);
}
EmployeeDAO.java
@Override
public void save(Employee employee) {
Session currentSession = em.unwrap(Session.class);
currentSession.saveOrUpdate(employee);
}