Problemas no mapeamento de herança com hibernate [RESOLVIDO]

Pessoal,

Possuo a estrutura de classes :

|Negocio| 1 _______ * |AtivoFinanceiro|

sendo a classe AtivoFinanceiro uma classe abstrata tendo como subclasses:
Acao
Opcao
Termo

Fiz um mapeamento no Hibernate de uma tabela por subclasse:

<?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="br.com.rafael.gestorinvestimentos.model.Negocio" table="negocio">
		<id name="id" column="idNegocio" type="integer">
			<generator class="increment"></generator>
		</id> 
		
		<property name="ordem" column="ordem" type="int" not-null="true"></property>
		<property name="tipo" column="tipo" type="string" not-null="true"></property>
		<property name="quantidade" column="quantidade" type="int" not-null="true"></property>
		<property name="preco" column="preco" type="double" not-null="true"></property>
		<property name="negociacao" column="negociacao" type="string" not-null="true"></property>
		<property name="tipoMercado" column="tipoMercado" type="string" not-null="true"></property>
		<property name="valorNegocio" column="valorNegocio" type="double" not-null="true"></property>
		
		<many-to-one name="operacao" column="idOperacao" update="true" insert="true" not-null="true"></many-to-one>
		<many-to-one name="ativoFinanceiro" column="idAtivoFinanceiro" update="true" insert="true" not-null="false"></many-to-one>
		
	</class>
</hibernate-mapping>
<?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="br.com.rafael.gestorinvestimentos.model.AtivoFinanceiro" table="ativo_financeiro">
		<id name="id" column="idAtivoFinanceiro" type="integer">
			<generator class="increment"></generator>
		</id> 
		
		<property name="ticker" column="ticker" type="string" not-null="true" unique="true"></property>
		<property name="nome" column="nome" type="string" not-null="true" unique="true"></property>
		
		<joined-subclass name="br.com.rafael.gestorinvestimentos.model.Acao" table="acao">
		    <key column="idAcao"> </key>
        </joined-subclass>

		<joined-subclass name="br.com.rafael.gestorinvestimentos.model.Opcao" table="opcao">
		    <key column="idOpcao"> </key>
			<property name="dataVencimento" column="dataVencimento" type="date" not-null="true" unique="false"></property>
			<property name="strike" column="strike" type="double" not-null="true" unique="false"></property>
			<property name="tipo" column="tipo" type="string" not-null="true" unique="false"></property>
			
			<many-to-one name="acao" column="idAcao" not-null="true"></many-to-one>
        </joined-subclass>


		<joined-subclass name="br.com.rafael.gestorinvestimentos.model.Termo" table="termo">
		    <key column="idTermo"> </key>
			<property name="prazo" column="prazo" type="int" not-null="true" unique="false"></property>
			
			<many-to-one name="acao" column="idAcao" not-null="true"></many-to-one>
        </joined-subclass>
				  
	</class>
</hibernate-mapping>

O problema ocorre quando eu busco um objeto negócio e tento identificar a que tipo de AtivoFinanceiro ele se refere. O código abaixo por exemplo não imprime nada:

		Iterator iterator = negocios.iterator();
		while(iterator.hasNext()){
			Negocio n = (Negocio) iterator.next();
			System.out.println("Negócio: " + n.getId());
			AtivoFinanceiro ativo = n.getAtivoFinanceiro();
			
			if(ativo instanceof Acao){
				Acao acao = (Acao) ativo;
				System.out.println(ativo.getNome());
			}

			if(ativo instanceof Opcao){
				Opcao opcao = (Opcao) ativo;
				System.out.println(opcao.getNome() + "  " + opcao.getStrike());
			}
			
			if(ativo instanceof Termo){
				Termo termo = (Termo) ativo;
				System.out.println(termo.getNome() + "  " + termo.getPrazo());
			}
			
			
		}

Alguém tem uma idéia do que pode estar acontecendo?

Resolvi o problema setando a propriedade lazy = false, no many-to-one do relacionamento da classe Negocio com a superclasse AtivoFinanceiro

<many-to-one name="ativoFinanceiro" column="idAtivoFinanceiro" update="true" insert="true" not-null="false" lazy="false"></many-to-one>