Bonjour,
Mon problème est le suivant :
J'ai un objet principal (un profile) qui est en relation many_to_many avec 3 autres objets (ci dessous mapping)
<hibernate-mapping package="domain">
<class name="Profile" table="PROFILE" >
<id column="idProfile" name="id">
<generator class="increment"/>
</id>
<array name="prestations" table="PROFILE_PRESTATION" cascade="merge, save-update">
<key column="idProfile"/>
<index column="position"/>
<many-to-many column="idPrestation"
class="Prestation"/>
</array>
<array name="segments" table="PROFILE_SEGMENT" cascade="merge, save-update">
<key column="idProfile"/>
<index column="position"/>
<many-to-many column="idSegment"
class="Segment"/>
</array>
<array name="ratings" table="PROFILE_RATING" cascade="merge, save-update, delete">
<key column="idProfile"/>
<index column="position"/>
<many-to-many column="idRating"
class="Rating"/>
</array>
<property name="name" not-null="true" length="64"/>
</class>
Tout fonctionne bien, sauf que, pour des raisons de performance dans certains cas, je voudrais ne ramener que les "prestations" et "segment" et non les "rating"
Et il n'y a rien à faire
J'ai essayé plusiseurs choses, mais je récupère toujours toute la grappe :
Query myQuery = session.createQuery("from Profile as bp " + "join fetch bp.prestations " + "join fetch bp.segments order by bp.name" );
ou
Query myQuery = session.createSQLQuery( "SELECT * FROM PROFILE bp, SEGMENT s, PRESTATION p, PROFILE_SEGMENT bps, PROFILE_PRESTATION bpp " + "WHERE bp.idProfile=bps.idProfile AND " + "bps.idSegment=s.idSegment AND " + "bp.idProfile=bpp.idProfile AND " + "bpp.idPrestation=p.idPrestation") .addEntity(Profile.class) ;
Qlqu'un aurait-il une idée, svp ?
Merci d'avance
|