finden Sie die id in spring data jpa-Base-Repository
Ich versuche, die Implementierung eines generischen findByIdsIn
Methode in der BaseRepository
meiner Spring Data JPA-Klasse, so dass die Funktionalität verwendet werden kann, durch alle Klassen, implementieren diese Schnittstelle.
Ich bin ziemlich neu in Spring Data JPA, also bin ich nicht sicher, ob das möglich ist und wie es zu implementieren.
Hier der code, den ich habe, so weit. Die findByIdsIn
ist die Funktionalität, die ich möchte zu implementieren.
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.Repository;
import java.io.Serializable;
import java.util.List;
import java.util.Optional;
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends Repository<T, ID> {
List<T> findAll( );
Optional<T> findById(ID id);
List<T> findByIdsIn(List<ID> ids); //This is the functionality I'd like to implement.
}
Habt Ihr irgendwelche Vorschläge?
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade eine Lösung gefunden, ich bin zufrieden mit:
Ich bin gerne für andere Menschen zu tragen, wenn gibt es elegantere Lösungen, aber.
Standardmäßig
SimpleJpaRepository
ist der Implementierungen für grundlegende repository-Operationen. Sie implementieren sollten, und schreiben eine Klasse, die sichSimpleJpaRepository
. Als generischen Typen, die zu dieser Implementierung zwei Arten von parameter wie übergeben werden, die in der SchnittstelleSimpleJpaRepository
. Unten ist ein Beispiel der Umsetzung Ihrer Anforderung:Außerdem benötigen Sie zum überschreiben der default-Implementierung, d.h.
SimpleJpaRepository
mit Ihrer Implementierung, d.h.BaseRepositoryImpl
Schließlich konfigurieren Sie Ihre
BaseRepositoryFactoryBean
im Frühjahr Konfiguration mit@EnableJpaRepositories
Anmerkungen und Angabe Ihrer Klasse als unten. Dies wird Ihnen sagen, JPA, die RepositoryFactoryBean zu rufen, und die wiederum sagen, die JPA-repository zu verwenden, während, und initialisieren Sie es mit Ihrer Umsetzung mit seiner Impl-Klasse.Nun könnten Sie
BaseRepository
undfindByIdsIn
verfügbar sein wird für den Einsatz in Ihrer Anwendung.