2010-11-18 15 views
1

mySql işlevini Order By (Sipariş Et) olarak kullanmak için Hazırda Bekletme (önceden Kriteri API'sı) kullanılarak yapılabilir.Hazırda Bekletme - MySql İşlevlerini Enjekte Etme

Kullanmak arıyorum fonksiyonudur: - {takma ad}

criteria.createCriteria("location.address"); 

de köklü bir

SQRT(POW(69.1 * ({alias}.latitude - 51.3814282) , 2) + POW(69.1 * ( -2.3574537 - {alias}.longitude) * COS({alias}.latitude/57.3) , 2)) 

yapmam arıyorum Yukarıdaki tüm tarafından sipariş sonuçlar ise mesafe denklemi, ancak şimdiye kadar Projeksiyon seçeneklerini veya Siparişi kullanarak bir yol buldum. seçenekler ve fikirler tükeniyor.

Alkış, R

cevap

1

Bu tam sorunuza cevap ama ne Kriterler API çıkmak onların arayüzleri uymak güzel Nesnelerin bir demet etmez. Sorgunun sıralamasını kaldırmayı ve bunları bellekte sıralamayı düşündünüz mü? Sıralama fonksiyonunu bir Karşılaştırıcı açısından ifade etmek kolay olmalı ve daha sonra Koleksiyonu sadece sıralayabilirsiniz.

Ben Kriterler API .addOrder işlevinde bunu ifade etmek nasıl bilmiyorum. Kısıtlamalar için isteğe bağlı SQL ekleyebilirsiniz, ancak rastgele SQL ile sipariş veremezsiniz.

İyi şanslar.

+0

Şerefe Tim, tam olarak aradığım şey değil ama işi yapıyor. Veri kümesi büyüdükçe performans hakkında biraz endişeliyim ama şimdilik hafızayı sıralamak için iyi olacak :) – Rob

İlgili konular