It's about enabling you more natural and OO modelling of the domain. when you have lots of experience in relational modelling you tend to do:
problem -> relational -> O.O but it's not the way to go. you shoulld problem -> relational when setting up the RDBMS problem -> OO when doing application logic OO -> relational when mapping On Sat, Sep 20, 2008 at 4:58 PM, N. D. <[EMAIL PROTECTED]> wrote: > so from what i gather so far, using NH's relation mapping, i move my > would-be joins and selects, in case i went with non-fun naked mapping, to > the declarative side. > > > > On Sat, Sep 20, 2008 at 4:47 PM, Ken Egozi <[EMAIL PROTECTED]> wrote: > >> NH is actually two things. >> 1. an OR/M >> 2. a very smart DAL >> >> you can have entity model that reflects the DB's E/R in a 1:1 manner, >> without relations and collections, just primitive properties, and still >> enjoy the merits of NH (PI, Caches, efficient connection management, smart >> query capabilities). >> >> but what's the fun in that? >> >> >> On Sat, Sep 20, 2008 at 4:34 PM, Gustavo Ringel <[EMAIL PROTECTED] >> > wrote: >> >>> You may work without collections. >>> >>> If you have Order and OrderLine...you can query OrderLines doing >>> something like >>> "from OrderLine orderLine where orderLine.Order = :order" >>> >>> and you have the collection your self... >>> >>> You lose the option of encapsulating every call to order lines using the >>> repository for orders something you rarely want to lose. >>> You are giving a lot of info to the user now...using the option os >>> mapping the collection you can tell him how many order lines he has even >>> without knowledge of the order lines structure (you can map it with access = >>> field and hide it) >>> >>> for sure you have now to decide how to fetch the order lines in code >>> while putting order lines inside the order will give you the option to >>> change the fetching in mapping and using HQL or criteria... >>> >>> In resume you can work without mapping the collections...mapping big >>> collections is not a good practice so lot of times we are not mapping >>> collections where it is possible...but i don't think you have to set an >>> strategy working with or without them...you should use it or not depending >>> on your needs >>> >>> A rule of thumb one Fabio gave me: if you cannot map it with lazy=false >>> then it is not a good candidate to be inside the class... >>> >>> Gustavo. >>> >>> >>> On Sat, Sep 20, 2008 at 2:40 PM, N. D. <[EMAIL PROTECTED]> wrote: >>> >>>> Thanks Gustavo, you are right that i'm referring only to the mapping >>>> collections aspects of NH, i'm pretty much satisfied with everything else. >>>> when i think about it a bit more, the essence of the question is - if i >>>> don't use collection mapping at all and just work manually setting Ids - >>>> can >>>> you list the "good things" i lose? >>>> >>>> >>>> >>>> >>>> On Sat, Sep 20, 2008 at 3:35 PM, Gustavo Ringel < >>>> [EMAIL PROTECTED]> wrote: >>>> >>>>> Hi >>>>> >>>>> Regarding >>>>> >>>>> 1) NH is a PI framework, it will achieve it goals letting you to do >>>>> same things as you will do in the language without persistence. >>>>> >>>>> There is no magic in C# or Java that will give you a way to set only >>>>> one side of the collection and the other one will magically appear. >>>>> >>>>> 2) I don't see what the worry about with the cascade action is you must >>>>> write it in the mapping if you need it and you may not write it if you >>>>> don't...the same applies for opening a FK in a DB >>>>> >>>>> 3) The problem is not extra SQL the problem is which side is in charge >>>>> of the persistence. >>>>> >>>>> 4) You are using an advanced ORM because you want things like lazy >>>>> loading, you don't need to worry about them you can set default = false >>>>> and >>>>> live in the old days without lazy loading...you use it because you know >>>>> you >>>>> need it, it's not NH which will force you to use it and it won't decide to >>>>> you what's lazy or what not like SQL does not decide if you bring a joing >>>>> between two databases with a join or a select and a after that running >>>>> with >>>>> a CURSOR... >>>>> >>>>> 5) many-to-many relations sometimes are really cruel...i try to avoid >>>>> them if i can. >>>>> >>>>> >>>>> Regarding the conclusion, you talked about thinks you consider >>>>> problematic mapping collections and then ask if NH only advantage is only >>>>> on >>>>> querying, i don't think mapping a collection is even 0.01% of what the >>>>> framework brings... >>>>> >>>>> Gustavo. >>>>> >>>>> >>>>> On Sat, Sep 20, 2008 at 2:08 PM, ndotan <[EMAIL PROTECTED]> wrote: >>>>> >>>>>> >>>>>> Hey all, >>>>>> I have a theoretical question.i fail to see how nhibernate makes life >>>>>> easy for me by mapping relations. >>>>>> >>>>>> Every way i look at it, it seems that it poses more work to the >>>>>> programmer. >>>>>> for example taking directly from the documentation: >>>>>> >>>>>> >>>>>> http://www.hibernate.org/hib_docs/nhibernate/html/example-parentchild.html >>>>>> >>>>>> Parent p = (Parent) session.Load(typeof(Parent), pid); >>>>>> Child c = new Child(); >>>>>> c.Parent = p; >>>>>> p.Children.Add(c); >>>>>> session.Save(c); >>>>>> >>>>>> 1. I need to maintain both edges of the link myself, >>>>>> 2. i need to worry about cascade action >>>>>> 3. i need to worry about the extra sql that is generated if i do not >>>>>> use inverse=true >>>>>> 4. i need to worry about when to use lazy loading. >>>>>> 5. in many to many relations, i need to worry twice as much. >>>>>> >>>>>> so is the only advantage in the querying? and if so, i imagine that >>>>>> most of the queries would be done in HQL and i could just do a join >>>>>> for the relations by hand. >>>>>> >>>>>> >>>>>> i feel im missing a point. >>>>>> >>>>>> thanks. >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> >> -- >> Ken Egozi. >> http://www.kenegozi.com/blog >> http://www.musicglue.com >> http://www.castleproject.org >> http://www.gotfriends.co.il >> >> >> > > > > -- Ken Egozi. http://www.kenegozi.com/blog http://www.musicglue.com http://www.castleproject.org http://www.gotfriends.co.il --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
