Duvida Hibernate

Daew pessoal estou com uma duvida aqui com o hibernate, eh a seguinte:
Tenho um classe pessoa, uma classe aluno que extende pessoa e um classe curso.
Um curso tem N alunos.

Na minha classe Curso tenho um Set de alunos, quando busco o objeto curso do bd ele vem blz, agora quando
no resultado do bd faço curso.getAlunos() o hibernate tenta realizar um join, que eh o certo contudo em vez de o join ser
feito na tbAluno o hibernate esta usando a tbPessoa que eh o pai.
Quero saber qual a maneira de corrigir isso.

pessoa

public class Pessoa implements Serializable {

	private static final long serialVersionUID = 0L;

	private int id;
	private String nome;
	private char tpPessoa;

        // get's and set's
}
public class Aluno extends Pessoa{

	private static final long serialVersionUID = 1L;

	private String email;
	private Curso curso;

         // get's and set's
}
public class Curso implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private int id;
	private String nome;
	
	private Set<Aluno> alunos;

        // get's and set's
}

Pessoa.hbm

[code]



genPessoa



	<property name="nome" column="nome" not-null="true" length="20"/>
	
</class>[/code]

Aluno.hbm

<subclass name="entidades.Aluno" extends="entidades.Pessoa" discriminator-value="F">
		<join table="tbAluno">
			<key column="idPessoa" not-null="true" on-delete="cascade"
				unique="true" />

			<property name="email" column="email" />
			
			<many-to-one name="curso" column="idCurso" class="entidades.Curso"/>
		</join>
	</subclass>

Curso.hbml

<class name="entidades.Curso" table="tbCurso">
		<id column="idCurso" name="id" type="integer">
			<generator class="sequence">
				<param name="sequence">genCurso</param>
			</generator>
		</id>
		
		<property name="nome" column="nome" type="string" length="20"/>
		
		<set name="alunos" inverse="true" cascade="delete" order-by="nome">
			<key column="idCurso" not-null="true" />
  			<one-to-many class="entidades.Aluno"/>
		</set>
	</class>

Classe main

[code]
FabricaSessoesHibernate.getInstancia().carregueFabricasHibernate();
CursoDAO dao = new CursoDAO();
dao.inicieTransacao();

		Curso c = (Curso) dao.getObjeto(Curso.class, 1);
		System.out.println(c.getAlunos().toString());
		
		dao.termineTransacao(false);[/code]

Erro:

[quote]
Hibernate: select curso0_.idCurso as idCurso1_0_, curso0_.nome as nome1_0_ from tbCurso curso0_ where curso0_.idCurso=?
Hibernate: select alunos0_.idCurso as idCurso1_, alunos0_.idPessoa as idPessoa1_, alunos0_.idPessoa as idPessoa0_0_, alunos0_.nome as nome0_0_, alunos0_1_.email as email2_0_, alunos0_1_.idCurso as idCurso2_0_ from tbPessoa alunos0_ inner join tbAluno alunos0_1_ on alunos0_.idPessoa=alunos0_1_.idPessoa where alunos0_.idCurso=? order by alunos0_.nome
org.hibernate.exception.GenericJDBCException: could not initialize a collection: [entidades.Curso.alunos#1]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1926)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1676)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentSet.toString(PersistentSet.java:253)
at Teste.main(Teste.java:15)
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. Dynamic SQL Error
SQL error code = -206
Column unknown
ALUNOS0_.IDCURSO
At line 1, column 308.
at org.firebirdsql.jdbc.FBPreparedStatement.(FBPreparedStatement.java:76)
at org.firebirdsql.jdbc.FBConnection.prepareStatement(FBConnection.java:223)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:442)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:368)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1919)
… 8 more[/quote]

ueh [entidades.Curso.alunos#1] , o hibernate não tah achando isso, cara

Então josue carrecon esta eh a minha duvida, pois o hibernate nao esta fazendo o sql com aluno.idCurso e
sim com pessoa.idCurso e nesta tabela nao existe este campo