У меня есть несколько интерфейсов, которые аннотированы @Repository и расширяют JpaRepository. Все они находятся в одном пакете в моем проекте.
@Repository
public interface CustomerRepository extends JpaRepository<CustomerDTO>{
List<CustomerDTO> findByKeyCustomerId(long customerId);
List<CustomerDTO> findByKeyCustomerIdAndName(long customerId, String name);
}
@Repository
public interface UpdateRepository extends JpaRepository<UpdateDTO> {
@Query(value = "select nextval('sq')", nativeQuery = true)
Integer getNextUpdateId();
}
Я использую методы репозиториев в разных местах в разных пакетах в моем проекте в середине кода.
customerRepository.findByKeyCustomerId(customerId);
customerRepository.save(customerEntry);
updateRepository.getNextUpdateId();
updateRepository.save(updateEntry);
Я хочу вызывать один и тот же метод перед всеми этими вызовами выше и вызывать другой такой же метод после этих вызовов.
private void before(Span span) {
span.annotate("Before");
}
private void after(Span span) {
span.annotate("After");
}
Я хочу смоделировать следующий код:
span.annotate("Before");
Integer updateId = updateRepository.getNextUpdateId(); //can be any other repository method
span.annotate("After");
Как я могу добиться этого в общем c пути, без вставки до (span) и после (span) везде в коде, где я вызываю методы интерфейсов репозитория?