Hello, nog eens over NHibernate...
Ik probeer hier met VB.NET applicatie facturen naar een SQL2000 databank weg te schrijven, helaas ik slaag er niet in van 'complexe' objecten weg te schrijven. Zolang ik bij basistypes blijf (int, string, ...) gaat alles perfect. Nu mijn programma bevat een aantal facturen. Elke factuur is opgebouwd uit een aantal factuurregels. Elke factuurregel bevat een referentie naar een artikel.
Nu zou ik willen dat wanneer ik de factuurregel persisteer, ook automatisch het artikel dat het bevat wordt gepersisteerd in de tabel 'artikels'.
Nu slaag ik er niet in om de goede mapping te schrijven.
Even een beetje code pasten:
Van de Factuurregel wil ik enkel het id (automatisch) gegenereerd, en het aantal persisteren.
Automatisch zou ook het Artikel moeten worden gepersisteerd in andere tabel.
=========================================================
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Paperclip.FactuurRegel, Paperclip" table="factuurregel">
<id name="m_ID" access="field" column="FactuurRegelID" type="Int32">
<generator class="native" />
</id>
<property name="Aantal" type="Int32"/>
<one-to-one name="Paperclip.Artikel, Paperclip" class="Paperclip.Artikel, Paperclip" column="ArtikelID" not-null="true" cascade="delete"/>
</class>
</hibernate-mapping>
====================================================
Artikel
====================================================
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Paperclip.Artikel, Paperclip" table="artikels">
<id name="m_ID" access="field" column="ArtikelID" type="Int32">
<generator class="native" />
</id>
<property name="Verkoopprijs" type="Double"/>
<property name="Omschrijving" type="String" />
<property name="Groep" type="String"/>
<property name="Btwpercentage" type="Byte"/>
<<set name="FactuurRegel" >
<key column="ArtikelID" />
<one-to-one class="Paperclip.FactuurRegel, Paperclip" />
</set>
</class>
</hibernate-mapping>
===========================================================
De vraag is hoe schrijf ik de juiste mapping? Bij mijn weten hoeft het Artikel totaal niet te weten tot welke Factuurregel het behoort. De factuurregel hoeft enkel het id van het artikel te onthouden om het zo te kunnen terug vinden.... helaas ik krijg het niet aan de praat....
Ik probeer hier met VB.NET applicatie facturen naar een SQL2000 databank weg te schrijven, helaas ik slaag er niet in van 'complexe' objecten weg te schrijven. Zolang ik bij basistypes blijf (int, string, ...) gaat alles perfect. Nu mijn programma bevat een aantal facturen. Elke factuur is opgebouwd uit een aantal factuurregels. Elke factuurregel bevat een referentie naar een artikel.
Nu zou ik willen dat wanneer ik de factuurregel persisteer, ook automatisch het artikel dat het bevat wordt gepersisteerd in de tabel 'artikels'.
Nu slaag ik er niet in om de goede mapping te schrijven.
Even een beetje code pasten:
Van de Factuurregel wil ik enkel het id (automatisch) gegenereerd, en het aantal persisteren.
Automatisch zou ook het Artikel moeten worden gepersisteerd in andere tabel.
=========================================================
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Paperclip.FactuurRegel, Paperclip" table="factuurregel">
<id name="m_ID" access="field" column="FactuurRegelID" type="Int32">
<generator class="native" />
</id>
<property name="Aantal" type="Int32"/>
<one-to-one name="Paperclip.Artikel, Paperclip" class="Paperclip.Artikel, Paperclip" column="ArtikelID" not-null="true" cascade="delete"/>
</class>
</hibernate-mapping>
====================================================
Artikel
====================================================
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Paperclip.Artikel, Paperclip" table="artikels">
<id name="m_ID" access="field" column="ArtikelID" type="Int32">
<generator class="native" />
</id>
<property name="Verkoopprijs" type="Double"/>
<property name="Omschrijving" type="String" />
<property name="Groep" type="String"/>
<property name="Btwpercentage" type="Byte"/>
<<set name="FactuurRegel" >
<key column="ArtikelID" />
<one-to-one class="Paperclip.FactuurRegel, Paperclip" />
</set>
</class>
</hibernate-mapping>
===========================================================
De vraag is hoe schrijf ik de juiste mapping? Bij mijn weten hoeft het Artikel totaal niet te weten tot welke Factuurregel het behoort. De factuurregel hoeft enkel het id van het artikel te onthouden om het zo te kunnen terug vinden.... helaas ik krijg het niet aan de praat....