I'm asking mappings because with table-per-concreteclass mapped through <union-subclass> with HQL and with Criteria you have nothing to do, every thing is done by NH.
2010/3/10 Fabio Maulo <[email protected]> > mapping please > > 2010/3/10 DanV <[email protected]> > > Hi guys, >> >> I have a similar problem but I need to do it with HQL. Any idea how to >> do it, or if it is possible? >> >> >> On Mar 8, 6:58 pm, Diego Mijelshon <[email protected]> wrote: >> > As you may have guessed, you can't use polymorphic queries for >> properties >> > that are only defined in one of the classes. >> > If you desperately needed to make this one query, you could hack some >> > complex criteria with subqueries, or just write a SQL query with UNION. >> > However, it's probably cleaner to do it with two queries and join them >> with >> > LINQ-to-objects. >> > Since the Criteria API is actually more useful for search (where the >> > parameters vary), and you seem to have a pretty static query here, I'd >> go >> > one step further and use also NHibernate.Linq (you could also use >> QueryOver >> > with NH 3.x) >> > So, your whole query would be: >> > >> > var listOfReservables = Session.Linq<FrameworkContract>().Where(fc => >> > fc.Quantity > 0 && fc.Status == "Confirmed") >> > .ToList().Cast<Reservable>() >> > .Concat( >> > >> Session.Linq<InventoryStock>().Where(fc => >> > fc.Quantity > 0) >> > .ToList().ToList().Cast<Reservable>()) >> > >> > Diego >> > >> > On Mon, Mar 8, 2010 at 13:13, Patrik Lowendahl >> > <[email protected]>wrote: >> > >> > >> > >> > > Hello, >> > >> > > I have a scenario where I fetch data from two different tables into a >> > > "Reservable". You can reserve from inventory stock or from framework >> > > contracts. This is mapped using Table per concrete class strategies. >> > > However, I found a challenge. There is slighty different rules in >> what's >> > > acceptable as a reservable. StockInventory it's sufficient with >> quantity > 0 >> > > but for framework contracts it need to be cofirmed as well. >> > >> > > I would like to do something like: >> > >> > > var listOfReservables = Session.CreateCriteria(typeof (Reservable)) >> > > .Add(Restrictions.Gt("Quantity", 0)) >> > > .Add(Restrictions.Eq("Status", "Confirmed")) >> > > .List<Reservable>(); >> > >> > > But this isn't possible in it's current form since StockInventory >> doesn't >> > > have a Status, just the Framework Contract. Is this possible? Or do I >> need >> > > to create two separate queries for each concrete class and joint them >> > > myself? >> > >> > > -- >> > > Patrik Löwendhl >> > >> > > -- >> > > 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]> >> <nhusers%[email protected]<nhusers%[email protected]> >> > >> > > . >> > > For more options, visit this group at >> > >http://groups.google.com/group/nhusers?hl=en.- Hide quoted text - >> > >> > - Show quoted text - >> >> -- >> 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 > > -- 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.
