Pessoal,
Estou tentando persistir no BD os dados de um aluno, mas nao estou conseguindo e estou com bastante duvida na hora de usar as anotações de relacionamento do Hibernate.
Eu tenho uma classe Pessoa, com os dados pessoais desse aluno e uma outra classe Aluno, que herda os dados da classe Pessoa. Tenho tambem uma tabela Pessoa e outra tabela Aluno, nessa tabela aluno tenho o id da pessoa. Nao estou entendendo como vou salvar no mesmo formulario os dados pessoais do aluno e a matricula dele, e o Hibernate vai saber que alguns dados vao pra tabela aluno e outros pra tabela pessoa.
Fiz algumas coisas aqui e consegui salvar, mas apenas na tabela Pessoa, agora nao esta salvando mais nada.
Se alguem puder me ajudar, agradeço.
Pessoa.java:
[code]package teste.modelo;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
@Entity
public class Pessoa implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nome, email, celular;
private int cpf;
@OneToOne(cascade = CascadeType.ALL)
private Aluno aluno;
public Pessoa() {
...//getter e setters
}
[/code]
Aluno.java:
[code]package teste.modelo;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
@Entity
public class Aluno extends Pessoa implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String matricula;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="id_pessoa", referencedColumnName = "id", table="pessoa")
private Pessoa Pessoa;
public Aluno() {
super();
}
@Override
public int getId() {
return id;
}
@Override
public void setId(int id) {
this.id = id;
}
…
}
[/code]
AlunoAction:
[code]AlunoForm alunoForm = (AlunoForm) form;
Aluno aluno = new Aluno();
BeanUtils.copyProperties(aluno, alunoForm);
request.setAttribute(“aluno”, aluno);
Session sessao = HibernateUtil.getSession();
GenericDAO<Aluno> dao = new GenericDAO(sessao, Aluno.class);
try
{
dao.Salvar(aluno);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return mapping.findForward("sucesso");[/code]
[/code]