SORU
18 Kasım 2008, Salı


Nasıl katılır ve sıra tabanlı ile uyku ayrı sonuçları sınırlama (disk belleği) almak için?

Disk belleği satır tabanlı kullanarak (örneğin: setFirstResult(5) setMaxResults(10)) diğer tablolar için birleşimler olan Hazırda bir Ölçüt sorgu sınırlama uygulamak için çalışıyorum.

Anlaşılır, veri rastgele kesilmiş oluyor; ve bunun sebebi here açıklanmıştır.

Bir çözüm olarak, sayfa "ikinci bir sql select" a katılmak yerine. bir kullanarak önerir

Nasıl varolan kriterler benim sorgu katıldı createAlias() kullanarak) bir iç içe select yerine kullanmak için dönüştürebilirsiniz?

CEVAP
19 Kasım 2008, ÇARŞAMBA


Farklı kimlikleri yerine farklı sulu nesnelerin listesini bir liste talep ederek istenilen sonucu elde edebilirsiniz.

Ekle kriterlerine bu sadece:

criteria.setProjection(Projections.distinct(Projections.property("id")));

Şimdi size göre sonuçlar doğru sayıda alırsınız satır tabanlı sınırlayıcı. Bunun işe yaramasının nedeni, projeksiyon farklılığı kontrol yapacak olmasıdırbir parçası olaraksql farklılığı için sonuçları filtrelemek için, bir ResultTransformer ne yerine sorgusonrasql sorgu yapıldı.

Nesnelerin listesini almak yerine, şimdi hazırda nesneleri daha sonra nemlendirmek için kullanabileceğiniz kimlikleri bir listesini alacak dikkati çekiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dion Coulls

    Dion Coulls

    16 AĞUSTOS 2006
  • ipsy

    ipsy

    1 EKİM 2012
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008