Hallo
Also ich beschäftige mich noch nicht sehr lange mit hibernate. Ich hab mir gerade lazy loading angeschaut und dabei einige probleme.
(Ich verwende NHibernate Build 1.0.2.0 und .Net 2.0)
Als erstes kann ich für "property", "one-to-one" das "lazy" attribut nicht definieren (obwohl dies laut dokumentation funktionieren müsste. (Beim laden der Mapping Files erhalte ich eine Mapping Exception).
Ein weiteres Problem ist, dass ich zwar das "lazy"-attribut für meine Collection und die Subklasse definieren kann, dies aber keine auswirkung hat.
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="Tree.TreeItem, NHTest" table="TreeItem" lazy="true">
<id name="ID" column="ID" type="Int32" unsaved-value="0">
<generator class="native" />
</id>
<property name="Name" type="String"/>
<!-- Parent Item -->
<many-to-one name="Parent"
column="ParentID"
class=" Tree.TreeItem, NHTest "/>
<!--
Funktioniert, aber kein lazy loading
<one-to-one name="Parent"
class="Tree.TreeItem, NHTest"/>
-->
<!-- Owner -->
<many-to-one name="Owner"
column="CreatedBy"
class="User, NHTest"/>
<!--
Funktioniert, aber kein lazy loading
<one-to-one name="Owner"
class="BusinessObjects.User, SuitPrototypeA"/>
-->
<!-- Items -->
<bag name="Items" order-by="Name" lazy="true">
<key column="ParentID"/>
<one-to-many class="Tree.TreeItem, NHTest"/>
</bag>
<!--
Subklasse enthält das lazy attribut, hat aber keine auswirkung
-->
<joined-subclass
table="SpecialItem"
name="Tree.SpecialItem, NHTest"
lazy="true"
proxy="Tree.ISpecialItem, NHTest">
<key column="ItemID"/>
<property name="Size"
type="Double"/>
</joined-subclass>
</class>
</hibernate-mapping>
Ich bin mir fast sicher, dass mein problem mit dem mapping file zusammenhängt. Wenns jedoch nötig ist werde ich auch noch die dazugehörigen klassen posten.
Vielen dank für eure tipps schon mal im voraus
gruss