【发布时间】:2019-01-16 18:19:47
【问题描述】:
首先,这不是Spring Data: Override save method 的重复。我想重写保存方法,我知道在哪里可以找到documentation,但我的问题是如何在我的自定义代码中调用原始实现。
要覆盖 spring-data-* 中的 save() 方法,请执行以下操作:
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源码),所以我宁愿不这样做。
【问题讨论】:
-
在问题显示的代码中,应该在哪里调用
super.save(...)?是否尝试拨打super.save(...)?如果不是,是什么阻止了它;如果是,面临什么问题?这个问题目前的形式似乎还不清楚。
标签: spring-data spring-data-elasticsearch