← Каталог
Работа с базами данных из Java — 2. `EntityManager` — центр управления состоянием
Фрагмент из «Работа с базами данных из Java»: 2. `EntityManager` — центр управления состоянием.
// получение EntityManager (в Spring Boot — инъекция через @PersistenceContext)
@Transactional
public void transferFunds(Long fromId, Long toId, BigDecimal amount) {
User from = em.find(User.class, fromId); // загружает сущность по ID
User to = em.find(User.class, toId);
if (from.getBalance().compareTo(amount) < 0) {
throw new InsufficientFundsException();
}
from.setBalance(from.getBalance().subtract(amount));
to.setBalance(to.getBalance().add(amount));
// никаких em.update() не требуется!
// изменения автоматически синхронизируются с БД при коммите транзакции (flush)
} // получение EntityManager (в Spring Boot — инъекция через @PersistenceContext)
@Transactional
public void transferFunds(Long fromId, Long toId, BigDecimal amount) {
User from = em.find(User.class, fromId); // загружает сущность по ID
User to = em.find(User.class, toId);
if (from.getBalance().compareTo(amount) < 0) {
throw new InsufficientFundsException();
}
from.setBalance(from.getBalance().subtract(amount));
to.setBalance(to.getBalance().add(amount));
// никаких em.update() не требуется!
// изменения автоматически синхронизируются с БД при коммите транзакции (flush)
}