Es tut mir leid, viele Fragen in diesen Tagen zu stellen, aber ich bin alleine. Ich möchte genau wissen, wann ich eine neue Abfrage im Repository erstellen muss und wann ich Daten im Dienst filtern muss. Zum Beispiel, um eine Person mit Namen zu bekommen, können Sie es auf mehr als 2 verschiedene Arten tun.Spring mvc Service Beispiel vs Ruhezustand Repository Abfrage
public interface PersonRepository extends JpaRepository<Person, Integer> {
@Query("SELECT p FROM Person p WHERE LOWER(p.name) = LOWER(:name)")
Person findOneByName(@Param("name") String name);
}
und
@Service
public class PersonService implements IService<Person,Integer>{
...
public Person findOneByName(String name){
Person personFilter = new Person();
personFilter.setName(name);
ExampleMatcher matcher = ExampleMatcher.matching().withIgnoreCase().withIgnoreNullValues();
Example<Person > example = Example.of(personFilter,matcher);
return personRepository.findOne(example);
}
...
}
ich prefere die erste benutzen, weil es einfacher ist, zu implementieren, wann wir Beispiel verwenden?
Danke für Ihren Beitrag war es wirklich hilfreich. Ich habe gerade einen anderen Fall herausgefunden, in dem Beispiel nützlich ist, wenn Sie eine generische Methode in einem generischen Dienst ausführen möchten, da Sie nicht innerhalb des generischen Repositorys auf eine Entität verweisen können, so dass jpql nicht verwendet werden kann. – ScorprocS
@ScorprocS Ja, richtig. Bitte schön. –