2016-10-05 11 views
7

Szukałem docs danych wiosennych i nie znalazłem powodów, aby używać metod read...By, get...By zamiast find...By (jak to zwykle się robi). Proszę wyjaśnić:Jaka jest różnica między metodami zapytania find ... By, read ... By, query ... Do i get ... Do wiosną dane?

  • co robi ta metoda?
  • lub jaki jest cel tej metody?
  • W jakich przypadkach lepiej używać tej metody?
  • jaka jest różnica między nimi?

Czy mógłbyś podać przykład metody query..By?

+1

Nie ma różnicy między tymi czterema podejściami. Zostały one dostarczone jako opcje dostosowane do indywidualnych preferencji, ponieważ różni deweloperzy mogą mieć różne preferencje dotyczące sposobu, w jaki chcieliby nazwać swoje metody dostępu. 'Foo findByName (nazwa String)', 'Foo getByName (nazwa String)', 'Foo queryByName (nazwa String)' i 'Foo readByName (nazwa String)' są równoważne - znajdą 'Foo' z nazwą pasującą do nazwy wartość przekazana jako parametr "nazwa". – manish

Odpowiedz

9

Nie wiem jak o innych podprojektach, ale dla Spring Data JPA (1.10.2) te metody będą działać jako aliasy. Każde wywołanie metody wygeneruje identyczne zapytanie kwerendy (i identyczne zapytanie SQL).

Wewnętrznie nie ma rozróżnienia między tymi prefiksami. Jest on używany tylko do dopasowania wzorca zapytania:

private static final String QUERY_PATTERN = "find|read|get|query|stream"; 

https://github.com/spring-projects/spring-data-commons/blob/8bc022ebd7097b921ae1ef6c87f0ae9fc05bba5f/src/main/java/org/springframework/data/repository/query/parser/PartTree.java#L54

To samo podejście stosuje się do remove...By vs delete...By metod:

private static final String DELETE_PATTERN = "delete|remove"; 
Powiązane problemy