Wenn Sie Mapping-Dateien verwenden, könnten Sie feststellen, dass Hibernate die Entitäten lazy lädt. Auf diese Weise wird die Entität nur geladen, wenn Sie auf die Eigenschaft zugreifen. Im Folgenden finden Sie ein Beispiel für die Einrichtung des Lazy-Loads der Entitäten. Die Klasse A und B wird immer geladen, aber der Rest wird erst geladen, nachdem Sie versuchen, auf ihre Eigenschaften zuzugreifen.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TestNamespace.A, TestNamespace" table="A" lazy="false" />
<many-to-one name="B" column="B" />
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TestNamespace.B, TestNamespace" table="B" lazy="false" />
<many-to-one name="C" column="C" />
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TestNamespace.C, TestNamespace" table="C" lazy="true" />
<many-to-one name="D" column="D" />
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="TestNamespace.D, TestNamespace" table="D" lazy="true" />
<property name="SomeProperty" column="SomeColumn" />
</hibernate-mapping>
Best of luck
Gibt es eine Möglichkeit zu faul Last eineindeutig Einheiten? – Sudhakar
Soweit ich weiß, dass dies nicht von Hibernate unterstützt wird, sah ich einen Beitrag über etwas Ähnliches, das einen Workaround dafür hatte. Siehe diesen Beitrag http://stackoverflow.com/questions/965059/how-to-lazy-load-a-one-to-one-composition-via-hql – Falle1234