nadav,

I've solved it for the time being using an ICriteria with an
Expression.Sql criterion.
Thx for pointing that out. ;)

Anyway, I still wonder if the problem that I pointed out using
ISQLQuery is a bug or if I was really doing something wrong ?

On 8 apr, 22:26, nadav s <[email protected]> wrote:
> few stuff:
>
> 1. why won't you map the table? falling back on native sql, IMO is worst
> practice when you're using a great tool that does everything for you
>
> 2. even if you decide not to map that table (if so, why?), you could use a
> regular criteria and just add a native sql criterion
> to a regular criteria - (see Expression.Sql i belive. there you could write
> some_field in (Select some_field from UnmappedTable Where ...))
>
> then you fall back on native sql only in one of the where clauses and not
> the whole query, but again, why won't you just map the table?
>
> 3. i'm not sure, but from the top of my head i think there's something like
> SetRootEntity, but i might be off
>
> On Thu, Apr 8, 2010 at 6:02 PM, FrederikGheysels <
>
>
>
>
>
> [email protected]> wrote:
> > Additional Info:
> > - when I do not specify the DistinctRootEntity ResultTransformer, the
> > query returns instances of 'Prestation', however, multiple copies of
> > the same instance are present in the result.
>
> > On 8 apr, 16:38, FrederikGheysels <[email protected]>
> > wrote:
> > > Hi all,
>
> > > I'm using NHibernate 2.1.2.400, and I'm having an issue with a an
> > > ISQLQuery query.
>
> > > The reason why I use an ISQLQuery here, is that this query uses a
> > > table for which I have no entity mapped in NHibernate.
>
> > > The query looks like this:
>
> > > ISQLQuery query = session.CreateSQLQuery (
> > >     "select p.*, price.* " +
> > >     "from prestation p left outer join prestationprice price on
> > > p.PrestationId = price.PrestationId " +
> > >     "where p.Id IN ( select id from prestationregistry where ...");
>
> > > 'Prestationregistry' is the table that is not known by NHibernate
> > > (unmapped, so therefore the native SQL Query).
>
> > > my code continues like this:
>
> > > query.AddEntity ("p", typeof(Prestation));
> > > query.AddJoin ("price", typeof(PrestationPrice));
>
> > > query.SetResultTransformer (Transformers.DistinctRootEntity);
>
> > > var result = query.List();
>
> > > So far so good.
> > > I expect that I'm given a list of 'Prestation' instances as a result
> > > of this query, since I declared 'Prestation' as being the root-object
> > > that has to be returned by the AddEntity method.
> > > I also expect that the PrestationPrices for each Prestation are
> > > eagerly loaded by this query (hence the AddJoin method).
>
> > > To my surprise, the List() method returns a collection of
> > > PrestationPrice instances instead of Prestation instances.
> > > How come ?  Am I doing something wrong ?  And if so, could you be so
> > > kind to tell me what I'm doing wrong ?
> > > Or, is this a bug ?
>
> > --
> > 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.
>
> --
> 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 
> athttp://groups.google.com/group/nhusers?hl=en.

-- 
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