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
