Разве JPA не имеет @transactional по умолчанию?JAVA

Программисты JAVA общаются здесь
Anonymous
Разве JPA не имеет @transactional по умолчанию?

Сообщение Anonymous »

У меня есть базовый CRUD, когда я пытаюсь удалить, используя электронную почту пользователя, я получаю < /p>

Код: Выделить всё

"message": "No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call"

При использовании @transactional это работает, я читал, что JPA использует @transactional по умолчанию
my Repository:

Код: Выделить всё

@Repository
public interface UserRepository extends JpaRepository {
void deleteByEmail(String email);
}
< /code>
my service: < /p>
@Service
public class UserService {
private final UserRepository repository;

@Autowired
public UserService(UserRepository repository) {
this.repository = repository;
}
< /code>
Мой контроллер: < /p>
@RestController
@RequestMapping("/user")
public class UserController {

private final UserService userService;

@Autowired
public UserController(UserService reviewService, UserService userService) {
this.userService = userService;
}
Я попытался заглянуть в класс @deletemapping, чтобы увидеть, использует ли он @transactional, но не смог его найти.
Мой вопрос: JPA использует @transactional по умолчанию, и я делаю что -то не так, или я действительно должен явно использовать его при удалении и обновлении?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... by-default

Вернуться в «JAVA»