Ok you don't want to read my posts >From my post : http://fabiomaulo.blogspot.com/2010/03/nhibernate-mappings-path.html
Mapping Source: How map a class without use XML (12 November 2008)<http://fabiomaulo.blogspot.com/2008/11/mapping-source-how-map-class-without.html> Map NHibernate using your API (2010/01/11)<http://fabiomaulo.blogspot.com/2010/01/map-nhibernate-using-your-api.html> <http://fabiomaulo.blogspot.com/2010/03/nhibernate-mappings-path.html>Consequence of “*Map NHibernate using your API*” in our dev-list: thread of 41 mails<http://groups.google.com/group/nhibernate-development/browse_thread/thread/198cecde690b235d> Public origin of ConfORM<http://fabiomaulo.blogspot.com/2010/02/conform-nhibernate-un-mapping.html> idea : thread of 45 mails<http://groups.google.com/group/nhibernate-development/browse_thread/thread/eb873bb60851f062> Hopefully you will have time to understand that I asked permission/opinions to the NH's team about what the think about a new mapping-source and I hope you can understand that for me put ConfORM inside NH or that part represented by "Map NHibernate using your API" is a piece of cake (I can do it in one work day... as much). On Thu, Aug 12, 2010 at 1:51 PM, Frans Bouma <[email protected]> wrote: > > Same XML please. > > that's trivial if I define the model like you did in code. > > > btw Frans, you product is a code generator I can't skip 42 slides because > in > > the early slides you are describing the domain relations and relational > > mapping... > > no, not the mapping, just the entities and the relationships. I > don't define any mapping in that video by hand, nor the DDL SQL. Mappings + > table stuff is created by 1 mouseclick using settings to configure what > will > I end up with. > > > would be the same than explain that you have a whole application running > > starting from "press F5". > > you wrote classes to start with, I didn't. The classes contain the > info used by confORM, I created a model, which produces classes + mappings > + > DDL SQL, using very few keystrokes btw. > > But, like I said, let's not end up in a pissing contest :) Being in > a rush to get things done a.s.a.p. is never going to end well, so that's > not > what people should focus on. It's about maintainability etc., and confORM > could be a good choice for that as well, I don't want to have that debate, > as it's besides the point. The point is: with all the options, is yet > another option from the team around NH really helping, or just confusing > users? > > Also, is it or isn't it the future _preferred_ way of doing NH > mappings from the point of view of the NH team? (so others have to adapt to > confORM, and if they want support xml as well, but that's really not the > way > to go) > > FB > > > > > > > > On Thu, Aug 12, 2010 at 1:11 PM, Frans Bouma <[email protected]> wrote: > > > > > > > > > Now that you saw something more about ConfORM I will happy if you > > can > > answer > > > my annoying question. > > > Can you show me the equivalent-mapping/procedure using what ever > > you want > > ? > > > > > > (it's an old video of the alpha build, I'll soon make a new, > > more > > extensive one with quickmodel and NH. It's for our own framework, > but > > choosing NH is 2 clicks) > > > > > > > http://www.xs4all.nl/~perseus/LLBLGenPro/Videos/LLBLGenProv3.0_QuickM > > odel.ht > > ml > > > < > http://www.xs4all.nl/~perseus/LLBLGenPro/Videos/LLBLGenProv3.0_QuickModel.h > > t ml> > > > > skip to slide 42, press play > > > > I know, you start with code, I with the model, same thing. > > > > FB > > > > > > > > > > Thanks. > > > > > > > > > On Thu, Aug 12, 2010 at 12:34 PM, Fabio Maulo > > <[email protected]> > > wrote: > > > > > > > > > On Thu, Aug 12, 2010 at 11:43 AM, Tom Allard > > <[email protected]> > > > wrote: > > > > > > > > > "Make everything as simple as possible, but not > > simpler." > > > -- Albert Einstein > > > > > > > > > > > > > > > Sure. > > > For that reason this ConfORM mapping > > > > > > > > > var orm = new ObjectRelationalMapper(); > > > > > > orm.TablePerClass<Animal>(); > > > > > > > > > orm.TablePerClass<User>(); > > > orm.TablePerClass<StateProvince>(); > > > orm.TablePerClassHierarchy<Zoo>(); > > > > > > > > > > > > orm.ManyToMany<Human, Human>(); > > > orm.OneToOne<User, Human>(); > > > > > > > > > > > > orm.PoidStrategies.Add(new NativePoidPattern()); > > > is equivalent to this XML mapping > > > > > > > > > <hibernate-mapping > > xmlns:xsi="http://www.w3.org/2001/XMLSchema- > > > instance" > > > > > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > > > > > > > namespace="ConfOrmExample.Domain" > > > assembly="ConfOrmExample" > > > > > > > > > xmlns="urn:nhibernate-mapping-2.2"> > > > <class name="User"> > > > > > > > > > <id name="Id" type="Int64"> > > > > > > > > > <generator class="native" /> > > > > > > > > > </id> > > > <property name="UserName" /> > > > > > > > > > <one-to-one name="Human" /> > > > > > > > > > <list name="Permissions"> > > > > > > > > > <key column="user_key" /> > > > > > > > > > <list-index /> > > > <element type="String" /> > > > > > > > > > </list> > > > </class> > > > <class name="Animal"> > > > > > > > > > <id name="Id" type="Int64"> > > > > > > > > > <generator class="native" /> > > > > > > > > > </id> > > > <property name="BodyWeight" /> > > > > > > > > > <set name="Offspring" inverse="true" > > cascade="all,delete- > > > orphan"> > > > > > > > > > <key column="Mother" /> > > > > > > > > > <one-to-many class="Animal" /> > > > > > > > > > </set> > > > <many-to-one name="Mother" cascade="all" /> > > > > > > > > > <many-to-one name="Father" cascade="all" /> > > > > > > > > > <property name="Description" /> > > > > > > > > > <many-to-one name="Zoo" /> > > > > > > > > > <property name="SerialNumber" /> > > > > > > > > > </class> > > > <class name="StateProvince"> > > > > > > > > > <id name="Id" type="Int64"> > > > > > > > > > <generator class="native" /> > > > > > > > > > </id> > > > <property name="Name" /> > > > > > > > > > <property name="IsoCode" /> > > > > > > > > > </class> > > > <class name="Zoo"> > > > > > > > > > <id name="Id" type="Int64"> > > > > > > > > > <generator class="native" /> > > > > > > > > > </id> > > > <discriminator /> > > > <property name="Name" /> > > > > > > > > > <property name="Classification" /> > > > > > > > > > <map name="Animals" inverse="true"> > > > > > > > > > <key column="Zoo" /> > > > > > > > > > <map-key type="String" /> > > > > > > > > > <one-to-many class="Animal" /> > > > > > > > > > </map> > > > <map name="Mammals" inverse="true"> > > > > > > > > > <key column="Zoo" /> > > > > > > > > > <map-key type="String" /> > > > > > > > > > <one-to-many class="Mammal" /> > > > > > > > > > </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> > > > <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" cascade="all" /> > > > > > > > > > </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="Reptile" extends="Animal"> > > > > > > > > > <key column="animal_key" /> > > > > > > > > > <property name="BodyTemperature" /> > > > > > > > > > </joined-subclass> > > > <joined-subclass name="Lizard" extends="Reptile"> > > > > > > > > > <key column="reptile_key" /> > > > > > > > > > </joined-subclass> > > > <subclass name="PettingZoo" extends="Zoo" /> > > > > > > > > > <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" /> > > > > > > > > > <bag name="Friends" cascade="all,delete-orphan"> > > > > > > > > > <key column="human_key" /> > > > > > > > > > <many-to-many class="Human" /> > > > > > > > > > </bag> > > > <bag name="Pets" inverse="true" cascade="all,delete- > > orphan"> > > > > > > > > > <key column="Owner" /> > > > > > > > > > <one-to-many class="DomesticAnimal" /> > > > > > > > > > </bag> > > > <map name="Family" cascade="all,delete-orphan"> > > > > > > > > > <key column="human_key" /> > > > > > > > > > <map-key type="String" /> > > > > > > > > > <many-to-many class="Human" /> > > > > > > > > > </map> > > > <property name="Height" /> > > > > > > > > > <property name="BigIntegerValue" /> > > > > > > > > > <property name="BigDecimalValue" /> > > > > > > > > > <property name="IntValue" /> > > > > > > > > > <property name="FloatValue" /> > > > > > > > > > <set name="NickNames"> > > > > > > <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> > > > > > > </hibernate-mapping> > > > > > > Who wrote the XML mapping ? > > > > > > -- > > > 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]<nhusers%[email protected]> > > <mailto:nhusers%[email protected]<nhusers%[email protected]>> > . > > > For more options, visit this group at > > > http://groups.google.com/group/nhusers?hl=en. > > > > > > -- > > 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]> > > <mailto:nhusers%[email protected]<nhusers%[email protected]>> > . > > For more options, visit this group at > > http://groups.google.com/group/nhusers?hl=en. > > > > > > > > > > > > > > -- > > 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]<nhusers%[email protected]> > . > > For more options, visit this group at > > http://groups.google.com/group/nhusers?hl=en. > > > -- > 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 -- 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.
