Я пытаюсь получить старую сущность в событии @HandleBeforeSave
.
@Component
@RepositoryEventHandler(Customer.class)
public class CustomerEventHandler {
private CustomerRepository customerRepository;
@Autowired
public CustomerEventHandler(CustomerRepository customerRepository) {
this.customerRepository = customerRepository;
}
@HandleBeforeSave
public void handleBeforeSave(Customer customer) {
System.out.println("handleBeforeSave :: customer.id = " + customer.getId());
System.out.println("handleBeforeSave :: new customer.name = " + customer.getName());
Customer old = customerRepository.findOne(customer.getId());
System.out.println("handleBeforeSave :: new customer.name = " + customer.getName());
System.out.println("handleBeforeSave :: old customer.name = " + old.getName());
}
}
В случае, если я пытаюсь получить старую сущность, используя метод findOne
но это возвращает новое событие. Вероятно, из-за кэширования Hibernate/Repository в текущем сеансе.
Есть ли способ получить старую сущность?
Мне нужно это, чтобы определить, изменилось ли данное свойство или нет. В случае изменения свойства мне нужно выполнить какое-то действие.