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

  • Huot Media

    Huot Media

    7 Mayıs 2010
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008
  • Tomas N

    Tomas N

    14 Kasım 2010