Spring Data JPA/Boot: findBy ... oder
Möchte ich mal eine finder-Methode in meinem repository zu finden, ein Objekt basierend auf einem Feld ODER einer anderen während der Lieferung einen parameter wie:
@RepositoryDefinition(domainClass = Person.class, idClass = Long.class)
public interface PersonRepository extends CrudRepository<Person, Long> {
List<Person> findAllByIdOrAnotherId(someId);
}
Wie kann ich das tun, ohne Verwendung von SQL?
- Können Sie kommentieren Ihre Methode als
@Query("from Person p where p.id = ?1 or p.anotherId = ?1")
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügte ich einen zweiten parameter an die Methode und es funktionierte.
Dies ist nur eine definition für die Methode, da gebe ich den gleichen parameter an die Methode aus dem service:
Einer der coolen Dinge über Spring Data JPA ist die Tatsache, dass Sie können benutzerdefinierte Abfragen als abstrakte Methoden in Ihrer Schnittstelle.
In einer nussschale, können Sie eine neue such-Kriterien nur durch die Angabe der
@Entity
Feld name, den Sie möchten, um die Abfrage durch. Also, lasst uns sagen, ich willfindAll()
durchId
undCustomId
. BeideId
undCustomId
sind Felder, die in meiner domain-Klasse. Ich würde tun:Für weitere Informationen, untersuchen Sie die folgenden link:
Spring Data JPA - QUERY DEFINIEREN METHODEN