2014-04-02 21 views
13

Benim gereksinimi: VERSİYONU sütun maksimum değeriSpring CRUD deposu: findOneByMaxXYZColumn() var mı?

varsa

tablo RETAIN_INFO ONE nesneyi (örneğin RetainInfo) getirme

findOneByMaxRetVersionAndCountry("DEFAULT") 

Eşdeğer DB2 SQL gibi bir arayüz yöntemi için CRUD deposu desteği mu:

select RET_ID, max(ri.RET_VERSION) from RETAIN_INFO ri where ri. COUNTRY='DEFAULT' group by RET_ID fetch first 1 rows only; 
  • Bu sorgu seçer n ID, ancak RetainInfo nesnesinin sorgu tarafından döndürülen SINGLE satırına karşılık gelmesini istiyorum.

Özel sorguyu kullanmadan, örneğin findBy veya Spring CRUD tarafından desteklenen başka bir yöntem/arabirim kullanmadan kullanmayı tercih ediyorum.

+0

Olası kopyalar [Max/MongoDB belgesiyle dk değerler] (http://stackoverflow.com/questions/14425900/max-min-values-with: En CrudRepository arayüzünde aşağıdaki benzer bir yöntem bildirmek -mongodb-document) – Wheezil

cevap

25

Sınırlamayı sıralama (spring data reference:limit query results) ile birlikte kullanabilirsiniz.

RetainInfo findTopByCountryOrderByRetVersionDesc(String country); 
ait
+2

Bu, büyük bir masa üzerinde çalıştırıldığında gülünç derecede pahalı olmaya başladı. El ile tablo t' JPQL sorgudan bir select max (t.field) uyguladı. –

İlgili konular