Try to replace the '*' with something "compilable" without execute the SQL.
and... <query> mean HQL, for SQL the tag is <sql-query>

2009/12/31 Rippo <[email protected]>

> In my MSSQL server I have a SQL view called AllFavourite. In order to
> load the data into my DTO class I have the following in my hbm.xml
> file...
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>       namespace="Domain.Model.Entities" assembly="Domain.Model">
>  <import class="AllFavourite"/>
> </hibernate-mapping>
> In my code I have the following.
>
> public IList<AllFavourite> GetFavourites(int userId)
> {
>    var query = Session
>        .CreateSQLQuery("SELECT * FROM AllFavourite where
> UserId=:UserId")
>        .SetInt32("UserId", userId)
>        .SetResultTransformer(new AliasToBeanResultTransformer(typeof
> (AllFavourite)));
>    return query.List<AllFavourite>();
> }
> This works great and produces the results that I am after, however I
> would like to move the SQL from code into a named query into the
> hbm.xml file. So my hbm.xml file now looks like this
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="Domain.Model.Entities" assembly="Domain.Model">
>  <import class="AllFavourite"/>
>  <query name="GetAllFavouriteByUserId">
>    <![CDATA[
>    SELECT * FROM AllFavourite WHERE UserId=:UserId
>    ]]>
>  </query>
> </hibernate-mapping>
> and my code now looks like this
>
> public IList<AllFavourite> GetFavourites(int userId)
> {
>    var query = Session
>        .GetNamedQuery("GetAllFavouriteByUserId")
>        .SetInt32("UserId", userId)
>        .SetResultTransformer(new AliasToBeanResultTransformer(typeof
> (AllFavourite)));
>    return query.List<AllFavourite>();
> }
> However when I run this I get an error:-
>
> Parameter UserId does not exist as a named parameter in [SELECT * FROM
> AllFavourite WHERE UserId=:UserId]
>
> So my question is it possible to use a named query in this manner?
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>
>
>


-- 
Fabio Maulo

--

You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.


Reply via email to