Galera, tenho duas classes com relacionamento many-to-many, grava direitinho, mas não estou conseguindo recuperar os objetos do banco. Os mapeamentos são os seguintes:
<class name="pacote.LinhaDeDiscussao" table="linhas">
<id name="id" type="int" unsaved-value="null" >
<column name="id_linha" sql-type="int" not-null="true"/>
<generator class="native"/>
</id>
//outras coisas...
<set name="discussoes" table="discussoeslinhas" inverse="true" >
<key column="id_linha" />
<many-to-many column="id_discussao" class="pacote.Discussao" />
</set>
...
e a outra classe:
<class name="pacote.Discussao" table="discussoes" >
<id name="id" type="int" unsaved-value="null" >
<column name="id_discussao" sql-type="int" not-null="true"/>
<generator class="native"/>
</id>
<list name="linhas" table="discussoeslinhas" lazy="false" >
<key column="id_discussao" />
<list-index column="posicao_na_discussao" />
<many-to-many column="id_linha" class="pacote.LinhaDeDiscussao" />
</list>
Tentei essa query:
String hql = "from LinhaDeDiscussao as linha join Discussao as discussao where discussao.paragrafo = ?";
Mas confesso que foi um negócio meio chutado (e óbvio, dá erro na query), dei uma olhada no manual, mas não estou entendendo como consultar direito para obter a lista de todas as linhas associadas a uma discussão.
Outra coisa que está me confundindo é o seguinte: as linhas já estão carregadas na memória, vai dar pau eu consultar de novo? Vai haver duplicidade de objetos (dois objetos linha com o mesmo id?)
Alguém pode me ajudar a desfazer esse nó na minha cabeça? :?
Valeu.