as so often asking the question helps you pinpointing the mistake!

crit.Add(Subqueries.PropertyEq("Timestamp", clientsMaxTimestamp))

its PropertyEq, here!


2009/6/19 Jan Limpens <jan.limp...@gmail.com>

> Hello!
>
> I need to get a customers last Order with all it's OrderLines, each line
> with it's Article in one go.
>
> so the generated (ms) sql would be
>
> WHERE     (this_.UserID = '18080') AND (this_.Timestamp =
>                           (SELECT     MAX(Timestamp) AS y0_
>                             FROM          Orders AS this_0_
>                             WHERE      (UserID = '18080')))
>
>
> my criteria for this case currently are...
>
> var crit = session.CreateCriteria(typeof(Order))
>                 .SetFetchMode("Lines", FetchMode.Join)
>                 .SetFetchMode("Lines.Article", FetchMode.Join);
> crit.Add(Restrictions.Eq("Customer.Id", customerId));
> var clientsMaxTimestamp = DetachedCriteria.For<Order>()
>                     .SetProjection(Projections.Max("Timestamp"))
>                     .Add(Restrictions.Eq("Customer.Id", customerId));
> crit.Add(Subqueries.Eq("Timestamp", clientsMaxTimestamp));
>
> but this produces
>
> SELECT ...
> FROM   ...
> WHERE  this_.userid = ?
>        AND ? = (SELECT *Max*(this_0_.TIMESTAMP) AS y0_
>                 FROM   orders this_0_
>                 WHERE  this_0_.userid = ?)
>
> Positional parameters:  #0>18080 #1>Timestamp #2>18080
>
> so the second param (I don't actually want) is "Timestamp", but it is not a 
> value but a column!
>
> What is it I am erring here at?
>
>
> --
> Jan
>



-- 
Jan

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

Reply via email to