Ola pessoal, mais uma vez preciso da ajuda de vcs.
Eu estou fazendo um prejeto web, que será um guia de saloes de festas. Onde terei cadastro de usuarios e saloes (e todas as outras logicas de negocio para os dois).
Meu problema está no Hibernate! Eu preciso criar os relacionamentos das classes com ele, e nao estou conseguindo.
Ex.:
Possuo uma classe Salao, uma classe Pessoa e uma classe Endereco. Eu preciso relaciona-las da seguinte forma:
|salao| 1 ----------------- 1 |endereco|
|salao| * ----------------- 1 |pessoa| --> no caso o dono do salao
|pessoa| 1 --------------- 1 |endereco|
Os meus Beans estao da seguinte forma:
Salao
[code]@Entity
@Table(name = “salao”)
@SequenceGenerator(name = “sequencia_salao”, sequenceName = “salao_id”)
public class Salao implements Serializable {
private Long id;
private String nome;
private int cnpj;
private int ambientes;
private String email;
private int capacidade;
private Long telefone;
private double dimensao;
private int banheiros;
private double valor;
private Endereco endereco;
private Pessoa pessoa;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(updatable = true, name = "salao_nome", nullable = true, length = 50)
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getCnpj() {
return cnpj;
}
public void setCnpj(int cnpj) {
this.cnpj = cnpj;
}
public int getAmbientes() {
return ambientes;
}
public void setAmbientes(int ambientes) {
this.ambientes = ambientes;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getCapacidade() {
return capacidade;
}
public void setCapacidade(int capacidade) {
this.capacidade = capacidade;
}
public Long getTelefone() {
return telefone;
}
public void setTelefone(Long telefone) {
this.telefone = telefone;
}
public double getDimensao() {
return dimensao;
}
public void setDimensao(double dimensao) {
this.dimensao = dimensao;
}
public int getBanheiros() {
return banheiros;
}
public void setBanheiros(int banheiros) {
this.banheiros = banheiros;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="endereco_id", updatable = true)
public Endereco getEndereco() {
return endereco;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
@ManyToOne
@JoinColumn(name = "pessoa_id")
public Pessoa getPessoa() {
return this.pessoa;
}
}
[/code]
Pessoa
[code]@Entity
@Table(name = “pessoa”)
@SequenceGenerator(name = “sequencia_pessoa”, sequenceName = “pessoa_id”)
public class Pessoa implements Serializable {
private Long id;
private String nome;
private int cpf;
private int rg;
private String email;
private Long telefone;
private String senha;
private Endereco endereco;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(updatable = true, name = "pessoa_nome", nullable = false, length = 50)
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getCpf() {
return cpf;
}
public void setCpf(int cpf) {
this.cpf = cpf;
}
public int getRg() {
return rg;
}
public void setRg(int rg) {
this.rg = rg;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getTelefone() {
return telefone;
}
public void setTelefone(Long telefone) {
this.telefone = telefone;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="endereco_id", updatable = true)
public Endereco getEndereco() {
return endereco;
}
[/code]
e Endereco
@Entity
@Table(name="endereco")
@SequenceGenerator(name = "sequencia_end", sequenceName = "sequencia_end_id")
public class Endereco implements Serializable {
private Long id;
private String estado;
private String municipio;
private String bairro;
private String rua;
private int numero;
private String complemento;
private int cep;
private Pessoa pessoa;
private Salao salao;
public Endereco() {
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(updatable = true, name = "estado", nullable = false, length = 50)
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
@Column(updatable = true, name = "municipio", nullable = false, length = 50)
public String getMunicipio() {
return municipio;
}
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public int getCep() {
return cep;
}
public void setCep(int cep) {
this.cep = cep;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
@OneToOne(mappedBy = "endereco")
public Pessoa getPessoa() {
return this.pessoa;
}
public void setSalao(Salao salao) {
this.salao = salao;
}
@OneToOne(mappedBy = "endereco")
public Salao getSalao() {
return this.salao;
}
Quando eu acesso meu form e chamo a logica do vraptor2 para adicionar no banco gera um erro.
Vcs poderiam me dizer se existe algum erro de integridade nos beans acima?