In this case, you can use the stored procedure using the display construct, such as:
<sql-query name="LoadUsersAndTransactions" xml:space="preserve"> <return class="User" alias="u"> <return-property name="ID" column="user_id" /> <return-property name="Name" column="name" /> </return> <return-join property="u.Transactions" alias="t"> <return-property name="key" column="user_id" /> <return-property name="element" column="item_id" /> <return-property name="element.id" column="item_id" /> <return-property name="element.Amount" column="amount" /> </return-join> EXEC dbo.SelectUsersAndTransactions :param_1, ..., :param_N </sql-query>
This example assumes that transactions are displayed as a package in the User class. You should use this query as follows from C #:
IList<User> users = session .GetNamedQuery("LoadUsersAndTransactions") .SetString("param_1", parameterValue1) ... .SetString("param_N", parameterValueN) .List<User>();
NHibernate documentation on using custom SQL queries here .
Cheers, Gerka.
Gerke geurts
source share