Какую аннотацию Springboot нужно использовать в интерфейсе, который расширяет customRepository для переопределения метода save ()? - PullRequest
1 голос
/ 26 апреля 2019

Я использую весеннюю загрузку 2.1.2 и у меня есть CustomerRepository, который расширяет CrudRepository, теперь, чтобы переопределить метод save (чтобы сделать что-то перед вызовом save), я создал CustomerInterface и расширенный CustomerRepository. Теперь в CustomerRepository у меня есть @Repository. Какой должна быть аннотация для CustomerInterface.

Я пробовал @Transactional, но лучше ли это здесь?

@Repository
public interface CustomerRepository extends CrudRepository<Customer, Integer> {
    Customer save(Customer customer);
}



public interface PolicyStatusDao extends PolicyIdRepository {
    default void extractReport(Customer customer) {
        // do something
        save(customer);
    }
}

Примечание: игнорируйте наименование, это только пример. Я хотел, чтобы каждый класс и интерфейс были помечены Spring (или другими аннотациями, такими как lombok javax и т. Д.), Где бы это ни требовалось, поэтому возник вопрос.

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете попробовать переопределить SAVE

interface CustomizeSave<T> {
  <S extends T> S save(S entity);
}

class CustomizeSaveImpl<T> implements CustomizeSave<T> {

  public <S extends T> S save(S entity) {
    // Your implementation goes here. Customize 
  }
}

Вот пользовательские интерфейсы репозитория

interface CustomerRepository extends CrudRepository<Customer, Integer>, CustomizedSave<Customer> {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...