2016-10-05 15 views
7

docs bahar verisine bakıyordum ve , get...By (genellikle yapıldı) yerine get...By yöntemlerini kullanmanın bir nedenini bulamadım. Lütfen açıklayın:Sorgu yöntemleri arasındaki fark nedir… By, read… By, query… By, and get… İlkbahar verisinde?

  • Bu yöntemler ne yapıyor?
  • veya bu yöntemlerin amacı nedir?
  • Bu durumlarda hangi yöntemler daha iyi kullanılır?
  • Aradaki fark nedir?

query..By yönteminin bir örneğini yazabilir misiniz?

+1

. Bunlar, farklı geliştiricilerin erişim yöntemlerini nasıl adlandırmak istedikleri konusunda farklı tercihleri ​​olabileceğinden, bireysel tercihlere uygun seçenekler olarak sunulmuştur. Foo findByName (Dize adı) ',' Foo getByName (Dize adı) ',' Foo queryByName (Dize adı) 've' Foo readByName (Dize adı) 'hepsi eşdeğerdir - ad eşlemeli bir' Foo 'bulacaklardır "isim" parametresi olarak geçirilen değer. – manish

cevap

9

Diğer alt projeler hakkında nasıl bir bilgi sahibi olacağımı bilmiyorum ama Spring Data JPA (1.10.2) için bu yöntemler diğer adlar olarak çalışacak. Her yöntem çağırma, aynı kriterler sorgusunu (ve aynı SQL sorgusu) oluşturur.

Bu önekler arasında dahili olarak hiçbir ayrım yoktur. Sadece sorgu desen eşleştirme için kullanılır:

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

aynı yaklaşım remove...Bydelete...By vs yöntemleri için kullanılır: Bu dört yaklaşımlar arasında hiçbir fark yoktur

private static final String DELETE_PATTERN = "delete|remove";