Herança com hibernate

Pessoal, estou com dúvida sobre meu diagramas de classe pois temos o mais ou menos seguinte classes:

Pessoa <— Usuario, Externo

onde, Usuario e Externo são classes derivadas de Pessoa. Então, estas classes derivadas tem também algum método ou atributo a mais que Pessoa e se referem as tabelas tbUsuario e tbExterno.

Gostaria de saber se com o hibernate, é possível eu recuperar as informações das duas tabelas em objetos Pessoa, e depois, se necessário, fazer um type cast para Usuario ou Externo.

Como eu faço prá mapear os dados das classes derivadas para que isto seja possível ???

Primeiro , dê uma boa lida no manual do próprio hibernate, ele explica todo o funcionamento da herança, inclusive com exemplos práticos.

Além disso, você pode usar ferramentas já prontas para realizar o mapeamento tabelas/objeto, como por exemplo o middlegen http://boss.bekk.no/boss/middlegen/
que já gera para você os POJOS.

Abraço