Mapeamento de classes tipadas com Hibernate

Boa tarde a todos,

Como o hibernate trabalha com classes tipadas (Se é que trabalha)?

Como ficaria o mapeamento para a situação abaixo?

public abstract class Vinculo<TipoObjetoVinculador,TipoObjetoVinculado>
{
	private Integer idVinculo;
	private TipoObjetoVinculador vinculador;
	private TipoVinculo tipoVinculo;
	private TipoObjetoVinculado vinculado;
...
}

public abstract class VinculoCaracterizacao<TipoObjetoVinculado>
extends Vinculo<CaracterizacaoEmpreendimento, TipoObjetoVinculado> {
...
}

public class VinculoCaracterizacaoImovel extends
		VinculoCaracterizacao<Imovel>
{
...
}

public abstract class ViculoPessoa<TipoVinculado> extends Vinculo<Pessoa,TipoVinculado>
{
...
}

public class VinculoPessoaImovel extends ViculoPessoa<Imovel>
{
...
}

Grato,
Arturo