Встречается на собеседованиях • сегодня
Как получить доступ к данным сущности в @Transactional методе
В @Transactional методе доступ к данным сущности осуществляется через Hibernate Session (в JPA - EntityManager). Сущности автоматически привязываются к текущей транзакции. Пример:
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
text
@Transactional
public void updateUser(Long id, String newName) {
User user = userRepository.findById(id).orElseThrow();
user.setName(newName); // Изменения автоматически сохранятся при commit
}}
text
Ключевые моменты:
1. Изменения сущности сохраняются при успешном завершении транзакции
2. Если сущность detached (например, получена в другой транзакции), нужно сначала выполнить merge()
3. Для ленивой загрузки (@ManyToOne, @OneToMany и др.) доступ возможен только внутри транзакции
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы