Problema com mapeamento!

Olá pessoal!

Eu tenho a classe Pessoa, onde tenho duas classes extendendo ela: Professor e Aluno.

No Aluno, eu tenho uma ligação com uma Tabela de Etnia, não vou colocar em pessoa porque só preciso dela em Aluno.

vejam o código abaixo:

Pessoa

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Pessoa {

	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private Long idPessoa;
	
	@Lob
	private byte[] foto;
	
	@Column(length=50, nullable=false)
	private String nome;
	
	@Column(length=50, nullable=false)
	private String sobreNome;

	@Column(length=50)
	private String identidade;
	
	@ManyToOne
	@JoinColumn(name="idSexo",referencedColumnName="idSexo",nullable=false)
	private Sexo sexo;
	
	@Column(length=70)
	private String email;
	
	@Column(length=90, nullable=false)
	private String endereco;
	
	@Column(length=15)
	private String numero;
	
	@Column(length=40)
	private String bairro;
	
	@ManyToOne
	@JoinColumn(name="idCidade",referencedColumnName="idCidade",nullable=false)
	private Cidade cidade;

	@ManyToOne
	@JoinColumn(name="idEstado",referencedColumnName="idEstado",nullable=false)
	private Estado estado;
	
	@Column(length=9)
	private String cep;
	
	@Column(length=25)
	private String complemento;
	
	@Column(length=11, nullable=false)
	private String telefone;

	@Column(length=11)
	private String celular;
	
	private Date dataNascimento;
	
	@Transient
	private String dataNascimentoFormatada;

	@ManyToOne
	@JoinColumn(name="idEscolaridade",referencedColumnName="idEscolaridade",nullable=false)
	private Escolaridade escolaridade;

//getters e setters etc

Aluno

@Entity
public class Aluno extends Pessoa implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Column(length=100)
	private String nomePai;

	@Column(length=100)
	private String nomeMae;

	@Column(length=20)
	private String serie;

	@Column(length=100)
	private String nomeEscola;

	@Column(length=100)
	private String contatoEscola;

	@Column(length=11)
	private String telefoneEscola;
	
	@ManyToOne
	@JoinColumn(name="idEtnia",referencedColumnName="idEtnia",nullable=false)
	private Etnia etnia;

	@OneToMany(mappedBy="aluno")
	private List<AlunoEquipe> alunoEquipe;

	@OneToMany(mappedBy="aluno")
	private List<AlunoCategoria> alunoCategoria;

	@OneToMany(mappedBy="aluno")
	private List<AlunoPosicao> alunoPosicao;

	@Column(length=40)
	private String time;

	@Column(length=40)
	private String filme;

	@Column(length=40)
	private String hobby;

	@Column(length=40)
	private String prato;

	@Column(length=40)
	private String livro;

	@Column(length=40)
	private String musica;

	@Column(length=40)
	private String idolo;

//getters e setters e etc

Professor

@Entity
public class Professor extends Pessoa implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Column(length=11,nullable=false)
	private String cpf;

getters e setters e etc

Etnia


@Entity
public class Etnia implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private Long idEtnia;
	
	@Column(length=50)
	private String nome;

	@OneToMany(mappedBy="etnia")
	private List<Aluno> alunos;
	
	public Etnia() {}

getters e setters e etc

Salva normalmente… mas o problema é que o id da chave extrangeira da etnia na tabela Aluno não está salvando… na tabela pai que é Pessoa… as outras relações estão salvando as chaves estrangeiras normalmente!

O que faço pra resolver isso??

obrigado!