Mapear classe, Hibernate

5 respostas
W

Bom dia!
O meu problema é o seguinte tenho uma classe Aluno e nessa classe aluno eu tenho um objeto do tipo pessoa e nesse objeto do tipo pessoa eu tenho um objeto do tipo endereco, estou comerçando com hibernate agora ou melhor tentando comerça heheh e estou com dificuldade para mapear essa minha classe alunos, so para implementar estou tentanto mapear usando annotations, se tiver a solução usando xml blz. Se alguem puder me ajudar ficarei agradecido!

abraço,

Wanderson da Cruz

5 Respostas

rdgms

Cara eu não entendi a logica do endereço, o aluno vai poder ter varios endereços.
outra coisa que esta estranho é o aluno ter um objeto pessoa
acho que a melhor forma de fazer isso eh

@Entity
public class Aluno
{

@Id
@GeneratedValue
private int id;
private String nome;
@OneToMany
private Endereco endereco;

//getters e setters

}
W

Minha classe Alunos

package Administrativo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;

import org.hibernate.annotations.Entity;

import ClassesGenericas.Endereco;
import ClassesGenericas.Pessoa;

@Entity
@SequenceGenerator(name = "Alunos_matricula_seq",sequenceName = "Alunos_matricula_seq")
public class Aluno {
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "Alunos_matricula_seq")
	private long matricula;
	
	private Pessoa pessoa;
	@Column(name = "dataCadastro")
	private Date dataCadastro;
	@Column(name = "habilitacao")
	private String docHabilitacao;
	@Column(name = "numeroHabilitacao")
	private int docNumeroHabilitacao;
	@Column(name = "habilitacaoPretendida")
	private String docHabilitacaoPretendida;
	@Column(name = "contato")
	private String contato;
	private Endereco endereco;
	
}

Minha classe Pessoas

package ClassesGenericas;

import java.util.Date;


public class Pessoa {

	private String nome;
	private Date dataNascimento;
	private String docIdentidate;
	private String docCnpj_Cpf;
	private String docCarteiraTrabalho;
	private String naturalidade;
	private String contatoEmail;
	private int contatoTelefone;
	private Endereco endEndereco;

}

minha dificuldade é em mapear, tipo um aluno tem nome esse nome ta na minha classe pessoa como faço para mapear ele, nao sei se fui claro mas é mais ou menos isso e mesma coiso com endereço, a ideia que tive de endereço nao é um para muitos nao, um endereço para cada pessoa, e muito obrigado pela ajuda…

S

vc tem uma relação 1-1 entre eles, certo? procure a annotation @OneToOne do hibernate, tem um exemplo bem legal nos docs deles.

rdgms

Acho que pela sua logica vc deveria usar herança na pessoa

Olha esse eh o link aonde eu tiro todas as minhas duvidas de hibernate
http://www.hibernate.org/hib_docs/reference/en/html/index.html

W

hehe to pesquisando no google aqui e tal, dei uma lida na documentação e ate agora nao conseguir mapear a minha classe hehehe…mais vamos la a minha duvida é eu tenho uma tabela aluno no meu banco de dados (postgresql) esse tabela tem as colunas nome,rua,cnpj_cpf etc todos os dados que um aluno tem…agora vem a duvida como vou pesistir os dados que estao na minha classe endereço e minha classe pessoa na minha tabela aluno ,usando esse modelo one-to-one eu precisaria de ter uma tabela pessoa, endereco e aluno? e fazer a inserção com um join? isso nao seria muito viavel para mim nao! muito obrigado!

abraço,

Wanderson da Cruz

Criado 6 de novembro de 2008
Ultima resposta 6 de nov. de 2008
Respostas 5
Participantes 3