i have a filter defined on a on-to-many set.

after enabling it:

session.EnableFilter("test").SetParameter("isActive", false);

this hql:.

session.CreateQuery("select o from Order as o left outer join fetch
o.Lines where o.Id = :orderId")
   .SetGuid("orderId", orderId)
   .UniqueResult<Order>();

gives me this sql (shortened for readability):

select *
from Order
    left outer join Lines
        on Order.Id = Lines.FkOrdersId
            and 0 = Lines.IsActive
where Order.Id = '1dcdb688-c30f-4fcc-8bb0-9c8b00239d54'

but if a use this criteria:

session.CreateCriteria<Order>()
.SetFetchMode("Lines", FetchMode.Eager)
.Add(Restrictions.Eq("Id", orderId))
.UniqueResult<Order>();

i get this sql (shortened for readability):

select *
from Order
    left outer join Lines
        on Order.Id = Lines.FkOrdersId
            and 0 = Lines.IsActive
where Order.Id = '1dcdb688-c30f-4fcc-8bb0-9c8b00239d54'
    and 0 = Lines.IsActive


!! note that the filter restriction is also applyed to the where
clause when using criteria api

My question:

How do i have to use the criteria api to  get the same sql as with
hql, which means that the filter restriction is only applied to the
join and not to the where clause?

Thank you

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