2011-06-15 12 views
8

Projemde bir RDBMS ile Spring Data JPA kullanıyorum. Veritabanından tek bir kaydı en son tarihe sahip bir tablodan almam gereken bir şartım var. Bunun için bir alt sınırı kullanarak VEYA işlevine göre bir limit ve sipariş kullanmam gerekir. Ancak, NamedQuery kullanmamayı dilediğimi bilmek istedim, Spring Data JPA ve QueryDSL kullanarak bunu başarabileceğim bir yol var.İlkbahar Verisinde JPA tarafından emir ve Limit kullanımı nasıl kullanılır? QueryDSL

cevap

11

QueryDslPredicateExecutor.findAll(Predicate predicate, Pageable pageable) sizin için hile yapmak gerekmez mi? new PageRequest(0, limit) numaralı telefondan teslim alabilir ve bu nedenle ilk limit sonuçlarını geri alabilirsiniz.

+0

Cevabınız için teşekkürler. Onu gerçekten buldum. Bir liste döndürür, ancak iyi çalışır. – Abhishek

+0

@Olver Gierke Tek sorun, sayımı almak için gereksiz bir sorgu çalıştırmasıdır. Ben sadece bu durumlarda QueryDSL kullanıyorum, ama bir LimitOne sözdizimi güzel olurdu. Öneri [burada] gönderildi (https://jira.springsource.org/browse/DATAJPA-82?focusedCommentId=78956&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-78956) –

+2

"Sayfa" yerine "Liste" dönüş türünüz yoksa. –

1

Bunu yapmak için MIN ve MAX işlevini kullanma hakkında nasıl.

SELECT MAX(objDate) FROM Object 
+0

Adlandırılmış sorgular kullanmamayı umuyordum. İsimler sorgusunu kullanarak çok basit ama bunun etrafında bir yol olup olmadığını merak ediyordum. – Abhishek

İlgili konular