2016-07-20 15 views
6

Kulübümü Spring JPA named querys kullanıyorum. Benim sorunum, herhangi bir sonuçla eşleşmeyecek bir sorgu için neyin döndürüleceği bilgisini hiçbir yerde bulamadığım. findOne() için null olacağını varsayalım ama findAllByName() işlevi için ne olacağını hiç bilmiyorum.Eşleşme olmadığında JPA sorgusunun döndürme değeri

Deneyiminden kimbilir, belgelerinizde bir yer biliyor mu?

cevap

10

Benim küçük ve kişisel deneyimlerimden, repo üzerinde bir nesneyi ararsanız, örneğin Kimlik veya Ad ile adlandırılmış sorgu yöntemi, T türünde bir nesneyi döndürür, ancak repo'unuzdan hiçbir sonuç bulunmazsa dönüş null.

Birden çok öğe döndüren yöntemler boş bir koleksiyon oluşturacaktır List<T> (boş değil). Burada

Bazı belgeler: http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords

Ek D: Depo sorgu dönüş tipleri

Desteklenen sorgu dönüş türleri Sorgu dönüş türleri:

T Benzersiz bir varlık. Sorgu yöntemini en çok bir sonuç döndürmesini bekler. Hiçbir sonuç bulunamazsa, null döndürülür. Birden fazla sonuç bir IncorrectResultSizeDataAccessException'ı tetikleyecektir.

Yineleyici Bir Yineleyici. Dönüş tür türündeki yalnızca T bir null belirtmek tek hiçbir eşleşirse döndürülür gibi

görünüyor.

+0

Hiç kişisel bir cevap almadım, doğru bir davranış olup olmadığını bilmiyorum ... :) – exoddus

+2

lanet olası NP hehe! ne kadar çok olursa! = null ifadeleri daha iyi okuma/daha iyi belgelerle önlenecektir. – exoddus