Używam NHibernate do zarządzania bazą danych. w jednej klasie mam obliczania własności za pomocą tego wzoru:Błąd w aliasowaniu NHibernate
(SELECT MIN(x.timestamp) FROM (SELECT MAX(r.Timestamp) AS timestamp, r.Meter_Id FROM Reading r, Meter m WHERE r.Meter_Id = m.Id AND m.Store_Id = Id GROUP BY r.Meter_Id) AS x)
Wygenerowany zapytań wygląda tak:
(SELECT MIN(x.timestamp) FROM (SELECT MAX(r.Timestamp) AS timestamp, r.Meter_Id FROM Reading r, Meter m WHERE r.Meter_Id = m.Id AND m.Store_Id = this_.Id GROUP BY r.Meter_Id) AS this_.x)
Oczywiście nazwa w rachunku AS jest zmieniona na this_.x, co powoduje błąd.
To wydaje się być znany błąd: NHibernate JIRA #NH-2878
Czy enyone ma rozwiązanie dla tego?
Alias jest zdecydowanie potrzebny, ponieważ błąd SQL występuje, gdy nie jest używany. Chciałbym wiedzieć, czy ktoś już to naprawił. Jeśli nie ma, myślę, że będę używać widoku bazy danych dla mojego problemu. – Coxer