在扩展customRepository以覆盖save()方法的接口上必须使用哪个springboot注释?

时间:2019-04-26 08:08:12

标签: java spring spring-boot annotations

我使用的是Spring Boot 2.1.2,并具有扩展CrudRepository的CustomerRepository,现在要覆盖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 :(得分:0)

您可以尝试覆盖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> {
}