Thread View: alt.pl.comp.lang.csharp
3 messages
3 total messages
Started by GrzybSon
Wed, 12 May 2010 07:48
Nhibernate i inner join
Author: GrzybSon
Date: Wed, 12 May 2010 07:48
Date: Wed, 12 May 2010 07:48
29 lines
1677 bytes
1677 bytes
Witam,
ostatnio móżdże NHibernate i mam problem z Criteria API.
SELECT plyty.id, plyty.data_wypalenia, plyty.uwagi, rodzaj_plyty.nazwa
AS rodzaj, producent_plyty.nazwa AS producent
FROM plyty INNER JOIN
producent_plyty ON plyty.id_producenta_plyty =
producent_plyty.id INNER JOIN
rodzaj_plyty ON plyty.id_rodzaju_plyty =
rodzaj_plyty.id
ORDER BY plyty.data_wypalenia DESC
Jest to zapytanie do przykładowej bazy filmów - tabele:
producent_plyty i rodzaj_plyty to słowniki.
Tabela płyta zawiera kolumny:
id (PK),
data_wypalenia,
id_producenta_plyty, (FK)
id_rodzaju_plyty, (FK)
uwagi
Jak przerobić powyższe zapytanie SQLowe na odpowiednik NH wykorzystując
CriteriaAPI?
--
Pozdro,
Maćko
Re: Nhibernate i inner join
Author: Filip Zawada
Date: Sat, 15 May 2010 01:29
Date: Sat, 15 May 2010 01:29
18 lines
1569 bytes
1569 bytes
Witaj,
będziesz potrzebował czegoś w okolicy:
session.CreateCriteria<Plyta>()
.CreateAlias("Producent", "prod")
.CreateAlias("Rodzaj", "rodz")
.AddOrder(new Order("DataWypalenia", false))
.List<Plyta>();
to Ci załaduje obiekty typu Plyta razem z powiązanymi Producentem i
Rodzajem.
Oczywiście o ile poprawnie zdefiniowałeś mapowania NH, o których nic
nie wspominasz.
Pozdrawiam,
Filip Zawada
Re: Nhibernate i inner join
Author: Filip Zawada
Date: Sat, 15 May 2010 01:31
Date: Sat, 15 May 2010 01:31
5 lines
1323 bytes
1323 bytes
powinno być oczywiście
AddOrder(new Order("rodz.DataWypalenia", false))
Pozdrawiam,
Filip Zawada
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads