Ho due tabelle correlate tra loro utilizzando la relazione uno-a-molti: dipendente -> reparto: e relazione attraverso reparto_id nella tabella dei dipendenti.Sospende la modalità di recupero in runtime
io uso Hibernate: e il mio file di mapping Hibernate sono:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping default-lazy="false">
<class catalog="moi"
name="com.ebla.moi.correspondence.model.entity.user.User" table="user">
<id name="id" type="java.lang.Long">
<column name="id"/>
<generator class="identity"/>
</id>
<many-to-one
class="com.ebla.moi.correspondence.model.entity.department.Department"
fetch="select" name="department">
<column name="department_id"/>
</many-to-one>
<property generated="never" lazy="false" name="name" type="java.lang.String">
<column length="128" name="name" not-null="true"/>
</property>
<property generated="never" lazy="false" name="email" type="java.lang.String">
<column length="128" name="email" not-null="true" unique="true"/>
</property>
<property generated="never" lazy="false" name="maritalStatus" type="java.lang.Short">
<column name="marital_status" not-null="true"/>
</property>
<property generated="never" lazy="false" name="hireDate" type="java.lang.String">
<column length="64" name="hire_date"/>
</property>
</class>
</hibernate-mapping>
e il secondo file di mapping è:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping default-lazy="false">
<class catalog="moi"
name="com.ebla.moi.correspondence.model.entity.department.Department" table="department">
<id name="id" type="java.lang.Long">
<column name="id"/>
<generator class="identity"/>
</id>
<property generated="never" lazy="false" name="name" type="java.lang.String">
<column length="256" name="name" unique="true"/>
</property>
<set inverse="true" name="users" sort="unsorted">
<key>
<column name="department_id"/>
</key>
<one-to-many class="com.ebla.moi.correspondence.model.entity.user.User"/>
</set>
</class>
</hibernate-mapping>
Il mio problema è: a volte ho bisogno di ottenere il dipendente con il suo reparto e altre volte ho bisogno solo delle informazioni del dipendente con le informazioni del dipartimento fuori ..... e la stessa cosa con il reparto con il dipendente .... utilizzando il file di mappatura sopra l'ibernato porta il dipartimento e gli utenti se ho bisogno del dipendente o non ... come definire i miei bisogni di ibernare a f Etch proprio quello che mi serve ...
grazie
Non funziona per me. Recupera comunque le entità associate ma non utilizza una clausola join. Invece, chiama un'altra istruzione select. – supertonsky