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

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Huot Media

    Huot Media

    7 Mayıs 2010
  • theatre2film

    theatre2film

    12 NİSAN 2006