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

Reply via email to