Pessoal, estou mudando algumas estrategias de fetch das coleções de select para join, só que existe um caso que me dá problemas, justamente o mostrado abaixo. Um modulo de noticias tem relacao Many-to-Many com perfis e o tb tem relação One-To-Many com noticias. Quando deixo o fetch=“join” e faço a consulta(ele ja faz o left-join como se fosse lazy=false), ele traz um dos modulos duplicados e quando deixo a estratégia default(select, e ai ele respeita o lazy=true) ele puxa os modulos e depois corretamente as noticias. Segue código…
<set name="perfis" lazy="false" table="module_perfil" fetch="join">
<key column="cod_module"/>
<many-to-many class="br.com.easycm.modules.perfil.Perfil" column="cod_perfil">
</many-to-many>
</set>
<subclass name="br.com.easycm.modules.content.Category" discriminator-value="GNOTI">
<set name="contents" lazy="true" fetch="join" inverse="true" cascade="all" order-by="cod_default_content desc">
<key column="cod_category"/>
<one-to-many class="br.com.easycm.modules.content.GlobalContent"/>
</set>
</subclass>
Grato,
Alberto