首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在重写的spring-data方法中调用默认实现

如何在重写的spring-data方法中调用默认实现
EN

Stack Overflow用户
提问于 2018-08-09 18:15:37
回答 1查看 145关注 0票数 0

首先,这不是Spring Data: Override save method的副本。我想覆盖保存方法,我知道在哪里可以找到documentation,但我的问题是如何在自定义代码中调用原始实现。

要覆盖spring-data-*中的save()方法,可以执行如下操作:

代码语言:javascript
复制
interface CustomizedSave<T> {
  <S extends T> S save(S entity);
}

class CustomizedSaveImpl<T> implements CustomizedSave<T> {

  public <S extends T> S save(S entity) {
    // Your custom implementation
  }
}

interface UserRepository extends CrudRepository<User, Long>, CustomizedSave<User> {
}

interface PersonRepository extends CrudRepository<Person, Long>, CustomizedSave<Person> {
}

我的问题是如何调用save()的“超级”实现?在spring-data-elasticsearch中,默认的save()实现并不容易设置(基本上我需要复制AbstractElasticsearchRepository源代码),所以我不想这样做。

EN

回答 1

Stack Overflow用户

发布于 2018-08-09 21:49:39

代码语言:javascript
复制
@Autowired
private EntityManager em;

@Override
public User save(User entity) {
    JpaRepositoryFactory jrf = new JpaRepositoryFactory(em);
    UserRepositories repoWithoutCustom = jrf.getRepository(UserRepositories.class);
do somth....
}

其中repoWithoutCustom是你所需要的,你的UserRepository没有任何定制的方法。只需使用所需的RepositoryFactory,在您的情况下,根据我的理解是弹性的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51764388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档