In Spring Data Projekt bietet das CrudRepository komplexe CRUD-Funktionalität für die Entity-Klasse, die verwaltet wird.Was bedeutet <S extends T> speichern (S-Entität); im Frühjahrsspeicher?
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.
}
Im Allgemeinen weiß ich, was bedeutet „S T erweitert“, das heißt, die S, der Rückgabetyp der Operation speichern, muß Subtyp von T. sein, warum es notwendig ist, als Zwang fügen solche? Ich denke, dass wäre schön, etwas zu tun wie folgt aus:
T save (T entity);
Wie in
void delete(T entity);
Ich habe gegoogelt mehr Hilfe zu finden, und ich habe auf Stackoverflow selbst folgende Frage herausgefunden, aber es isn‘ t wirklich für mich klar:
Spring CrudRepository: why to invent a new generic type S
danke.
Ich denke, du hast Recht. "S" ist überflüssig und das Design der Signatur ist ein Fehler. – ZhongYu