Hibernate não popula collection quando eu uso HQL? o.O

Fala galera, cá estou com mais uma dúvida :stuck_out_tongue:

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? =(