Fala galera, cá estou com mais uma dúvida
Só espero que seja seja mais fácil =/
O problema é o seguinte: Eu tenho uma classe chamada usuário e uma outra chamada AbstractCommandTurno. Por causa de uma lógica de negócio diferente, eu preciso armazenar os comandos dos usuários num Set de usuário. Isso acontece por que o comando não é executado no momento, mas sim, posteriormente, de turnos em turnos. Então usuário possui um Set chamado "comandosPendentes".
Como podemos ver, essa classe de comandos é abstrata e possui dois comandos concretos "Constroi1" e "Constroi2" que são mapeados em tabelas diferentes (estratégia tabela por sub-classe).
O problema acontece quando eu entro nesse "turno" e quero executar esses comandos. Eu busto todos os usuários utilizando a consulta HQL : "FROM usuario u" e depois itero. O problema é que o Hibernate não popula o set! Já coloquei ele como lazy true e false e não muda nada. Já fiz até outer joins.
O engraçado é que o comando é salvo no banco de dados. Por que ele aparece nas suas tabelas. Alguém tem alguma sugestão?
Abaixo os mapeamentos:
Usuario.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Usuario" table="usuario" >
<id name="id" type="int">
<column name="idUsuario" />
<generator class="native" />
</id>
<property name="nick" type="string">
<column name="nick" length="25" unique="true" />
</property>
<property name="senha" type="string">
<column name="senha" length="25" />
</property>
<property name="email" type="string">
<column name="email" length="50" />
</property>
<one-to-one name="Endereco"
class="Endereco"
property-ref="usuario"
/>
<many-to-one
name="tipo"
column="idTipo"
class="Tipo"
not-null="true"
/>
<map
name="creditos"
lazy="true"
inverse="true"
cascade="save-update"
>
<key column="idUsuario" />
<index column="nome" type="string" />
<one-to-many class="Creditos"/>
</map>
<set
name="comandosPendentes"
lazy="true"
inverse="true"
cascade="all"
>
<key column="idUsuario" />
<one-to-many class="comandos.AbstractCommandTurno"/>
</set>
</class>
</hibernate-mapping>
AbstractCommandTurno.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="comandos.AbstractCommandTurno" table="comandoturno">
<id name="id" type="int">
<column name="idComandoTurno" />
<generator class="native" />
</id>
<many-to-one name="usuarioDono" class="Usuario" cascade="all" >
<column name="idUsuario" not-null="true" />
</many-to-one>
<property name="qtdTotalTurnos" type="int">
<column name="qtdTotalTurnos" />
</property>
<property name="qtdTurnos" type="int">
<column name="qtdTurnos" />
</property>
<joined-subclass name="comandos.Constroi1" table="Constroi1">
<key column="idComandoTurno" />
</joined-subclass>
<joined-subclass name="comandos.Constroi2" table="Constroi2">
<key column="idComandoTurno" />
</joined-subclass>
</class>
</hibernate-mapping>
Pelo amor de Deus, alguém pode me ajudar? =(