IMO, there is no reason to keep alive the mapping after configuration... btw we will see. Now my interest is about the "mapping by code" stuff.
About "keep alive the mapping" you can analyse this matter right now because we are using Hbm* in NH3.0 2010/1/13 Ayende Rahien <[email protected]> > There was a reason that I didn't specify NH Prof out front, it is because I > don't think that this is just as useful for users without it. > > > On Wed, Jan 13, 2010 at 4:59 PM, Fabio Maulo <[email protected]> wrote: > >> aaaaaaaaaaahhhh you mean for NH-Prof. >> Well... after BuildSessionFactory you can throw the Configuration >> instance. >> In that example I'm using Hbm* as information holders. >> Perhaps you can ask to the user to give the Configuration instance to >> NH-Prof and you can keep those classes inside NH-Prof. >> >> >> 2010/1/13 Ayende Rahien <[email protected]> >> >>> That really depend on who is doing the inspecting. >>> I know that _I_ can't really read the persisters/tuplizers and understand >>> what is going on the same way I can from reading the mapping files. >>> The idea of keeping that information around, especially since it is >>> going to be as a set of lightweight classes, means that we can regenerate >>> the mapping files and show the user what he fed into NH. >>> >>> >>> On Wed, Jan 13, 2010 at 4:47 PM, Fabio Maulo <[email protected]>wrote: >>> >>>> If needed we can "improve" inspection of Persisters, Tuplizers and so >>>> on... btw, the "inspection" and usage of those classes is the main work >>>> done >>>> by NH ;) >>>> >>>> >>>> 2010/1/13 Ayende Rahien <[email protected]> >>>> >>>>> Oh, I don't want to modify them, I just want to be able to inspect >>>>> them. >>>>> >>>>> On Wed, Jan 13, 2010 at 4:23 PM, Fabio Maulo <[email protected]>wrote: >>>>> >>>>>> The session-factory is using Metadata classes to generate Persisters >>>>>> and so on... >>>>>> You know... the session-factory is immutable (about mappings)... to >>>>>> change a mapping would mean change a lot of things created at >>>>>> session-factory-build (all queries for example). >>>>>> >>>>>> 2010/1/13 Ayende Rahien <[email protected]> >>>>>> >>>>>> As long as we are doing things this way, can we keep those classes >>>>>>> around in the session factory? >>>>>>> It would be very useful to be able to access them at some later point >>>>>>> in life. >>>>>>> >>>>>>> >>>>>>> On Wed, Jan 13, 2010 at 4:14 PM, Fabio Maulo >>>>>>> <[email protected]>wrote: >>>>>>> >>>>>>>> For sure we can serialize Hbm* to have the XML. >>>>>>>> In the code you can see the example in >>>>>>>> : MapDslTests.CreateXmlDemo.ShowXml() >>>>>>>> >>>>>>>> And this is the result of that mapping (readable as written by hand >>>>>>>> using NH's conventions): >>>>>>>> <?xml version="1.0" encoding="utf-8"?> >>>>>>>> <hibernate-mapping xmlns:xsi=" >>>>>>>> http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" >>>>>>>> http://www.w3.org/2001/XMLSchema >>>>>>>> " namespace="MapDsl" assembly="MapDsl" >>>>>>>> xmlns="urn:nhibernate-mapping-2.2"> >>>>>>>> <class name="Animal"> >>>>>>>> <id name="Id"> >>>>>>>> <generator class="native" /> >>>>>>>> </id> >>>>>>>> <property name="Description" /> >>>>>>>> <property name="BodyWeight" /> >>>>>>>> <many-to-one name="Mother" /> >>>>>>>> <many-to-one name="Father" /> >>>>>>>> <many-to-one name="Zoo" /> >>>>>>>> <property name="SerialNumber" /> >>>>>>>> <set name="Offspring" order-by="Father"> >>>>>>>> <key column="animal_key" /> >>>>>>>> <one-to-many class="Animal" /> >>>>>>>> </set> >>>>>>>> </class> >>>>>>>> <joined-subclass name="Reptile" extends="Animal"> >>>>>>>> <key column="animal_key" /> >>>>>>>> <property name="BodyTemperature" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="Lizard" extends="Reptile"> >>>>>>>> <key column="reptile_key" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="Mammal" extends="Animal"> >>>>>>>> <key column="animal_key" /> >>>>>>>> <property name="Pregnant" /> >>>>>>>> <property name="Birthdate" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="DomesticAnimal" extends="Mammal"> >>>>>>>> <key column="mammal_key" /> >>>>>>>> <many-to-one name="Owner" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="Cat" extends="DomesticAnimal"> >>>>>>>> <key column="domesticanimal_key" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="Dog" extends="DomesticAnimal"> >>>>>>>> <key column="domesticanimal_key" /> >>>>>>>> </joined-subclass> >>>>>>>> <joined-subclass name="Human" extends="Mammal"> >>>>>>>> <key column="mammal_key" /> >>>>>>>> <component class="Name" name="Name"> >>>>>>>> <property name="First" /> >>>>>>>> <property name="Initial" /> >>>>>>>> <property name="Last" /> >>>>>>>> </component> >>>>>>>> <property name="NickName" /> >>>>>>>> <property name="Height" /> >>>>>>>> <property name="IntValue" /> >>>>>>>> <property name="FloatValue" /> >>>>>>>> <property name="BigDecimalValue" /> >>>>>>>> <property name="BigIntegerValue" /> >>>>>>>> <bag name="Friends"> >>>>>>>> <key column="human_key" /> >>>>>>>> <many-to-many class="Human" /> >>>>>>>> </bag> >>>>>>>> <map name="Family"> >>>>>>>> <key column="human_key" /> >>>>>>>> <map-key type="String" /> >>>>>>>> <many-to-many class="Human" /> >>>>>>>> </map> >>>>>>>> <bag name="Pets" inverse="true"> >>>>>>>> <key column="human_key" /> >>>>>>>> <one-to-many class="DomesticAnimal" /> >>>>>>>> </bag> >>>>>>>> <set name="NickNames" lazy="false" sort="natural"> >>>>>>>> <key column="human_key" /> >>>>>>>> <element type="String" /> >>>>>>>> </set> >>>>>>>> <map name="Addresses"> >>>>>>>> <key column="human_key" /> >>>>>>>> <map-key type="String" /> >>>>>>>> <composite-element class="Address"> >>>>>>>> <property name="Street" /> >>>>>>>> <property name="City" /> >>>>>>>> <property name="PostalCode" /> >>>>>>>> <property name="Country" /> >>>>>>>> <many-to-one name="StateProvince" /> >>>>>>>> </composite-element> >>>>>>>> </map> >>>>>>>> </joined-subclass> >>>>>>>> <class name="User"> >>>>>>>> <id name="Id"> >>>>>>>> <generator class="foreign"> >>>>>>>> <param name="property">Human</param> >>>>>>>> </generator> >>>>>>>> </id> >>>>>>>> <property name="UserName" /> >>>>>>>> <one-to-one name="Human" constrained="true" /> >>>>>>>> <list name="Permissions"> >>>>>>>> <key column="user_key" /> >>>>>>>> <list-index /> >>>>>>>> <element type="String" /> >>>>>>>> </list> >>>>>>>> </class> >>>>>>>> <class name="Zoo"> >>>>>>>> <id name="Id"> >>>>>>>> <generator class="native" /> >>>>>>>> </id> >>>>>>>> <discriminator /> >>>>>>>> <property name="Name" /> >>>>>>>> <property name="Classification" /> >>>>>>>> <map name="Mammals"> >>>>>>>> <key column="zoo_key" /> >>>>>>>> <map-key type="String" /> >>>>>>>> <one-to-many class="Mammal" /> >>>>>>>> </map> >>>>>>>> <map name="Animals" inverse="true"> >>>>>>>> <key column="zoo_key" /> >>>>>>>> <map-key type="String" /> >>>>>>>> <one-to-many class="Animal" /> >>>>>>>> </map> >>>>>>>> <component class="Address" name="Address"> >>>>>>>> <property name="Street" /> >>>>>>>> <property name="City" /> >>>>>>>> <property name="PostalCode" /> >>>>>>>> <property name="Country" /> >>>>>>>> <many-to-one name="StateProvince" /> >>>>>>>> </component> >>>>>>>> </class> >>>>>>>> <subclass name="PettingZoo" extends="Zoo" /> >>>>>>>> <class name="StateProvince"> >>>>>>>> <id name="Id"> >>>>>>>> <generator class="native" /> >>>>>>>> </id> >>>>>>>> <property name="Name" /> >>>>>>>> <property name="IsoCode" /> >>>>>>>> </class> >>>>>>>> </hibernate-mapping> >>>>>>>> >>>>>>>> >>>>>>>> 2010/1/13 Richard Brown (gmail) <[email protected]> >>>>>>>> >>>>>>>>> > The usage of Hbm* is more like a joke and will give us >>>>>>>>> the ability to see the XML. >>>>>>>>> >>>>>>>>> Can we re-serialise the Hbm* classes back into XML? (If so, then >>>>>>>>> definitely keep using them). >>>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> > In both cases what we should talk about is the API: >>>>>>>>> >what I have used in the post is a "hbm-xml-mimic" style and, IMO, >>>>>>>>> it is the best way for various reasons... >>>>>>>>> >>>>>>>>> I'm happy with the example shown ... I suspect I'd need to use it >>>>>>>>> in anger for a while to have anything more concrete to say. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Fabio Maulo >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Fabio Maulo >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Fabio Maulo >>>> >>>> >>> >> >> >> -- >> Fabio Maulo >> >> > -- Fabio Maulo
