<S扩展T>保存(S实体)是什么意思?在春季存储库中?
2022-09-03 06:36:21
在Spring Data项目中,CrudRepository为正在管理的实体类提供了复杂的CRUD功能。
public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
// … more functionality omitted.
}
一般来说,我知道“S扩展T”是什么意思,即保存操作的返回类型S必须是T的子类型。为什么有必要添加诸如约束之类的内容?我认为做这样的事情会很好:
T save (T entity);
如
void delete(T entity);
我已经用谷歌搜索了更多帮助,我已经找到了关于stackoverflow本身的以下问题,但对我来说并不清楚:
Spring CrudRepository:为什么要发明一种新的通用类型S
谢谢。