Ao Excluir Registro Pai excluir os filhos no Hibernate

1 resposta
R

Já configurei de tudo mas quando estou excluindo o registro pai que eh a Permissao o registro funcionário n exclue…

Tenho essas classes:

Funcionario:

package com.experience.softwares.sgsc.model;



import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
public class Funcionario {
	
	@Id 
	@GeneratedValue
	private int Cod;
	@Column(length=60)
	private String Nome;  
	@Column(length=30)
	private String Endereco;
	@Column(length=30)
	private String Bairro;  
	@Column(length=30)
	private String Cidade;
	@Column(length=2)
	private String UF;
	@Column(length=20)
	private String CEP;
	@Column(length=13)
	private String Fone;
	@Column(length=60)
	private String Email;
	@Column(length=30)
	private String CPF;
	@Column(length=20)
	private String RG;
	@Temporal(TemporalType.DATE)
	private Date DtaNascimento;
	@Temporal(TemporalType.DATE)
	private Date DtaAdmissao;
	@Column(length=50)
	private String Cargo;
	@Column(length=25)
	private String Login;
	@Column(length=20)
	private String Senha;
	
	
	@ManyToOne(fetch = FetchType.EAGER)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.ALL)
	private Permissao Permissao; //Métodos getters e setters
	
	@OneToMany(mappedBy="Funcionario", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Venda> vendas;
	
	public Collection<Venda> getVendas() {
		return vendas;
	}
	public void setVendas(Collection<Venda> vendas) {
		this.vendas = vendas;
	}
	public String getBairro() {
		return Bairro;
	}
	public void setBairro(String bairro) {
		Bairro = bairro;
	}
	public String getCargo() {
		return Cargo;
	}
	public void setCargo(String cargo) {
		Cargo = cargo;
	}
	public String getCEP() {
		return CEP;
	}
	public void setCEP(String cep) {
		CEP = cep;
	}
	public String getCidade() {
		return Cidade;
	}
	public void setCidade(String cidade) {
		Cidade = cidade;
	}
	public int getCod() {
		return Cod;
	}
	public void setCod(int cod) {
		Cod = cod;
	}
	public String getCPF() {
		return CPF;
	}
	public void setCPF(String cpf) {
		CPF = cpf;
	}

	public String getEmail() {
		return Email;
	}
	public void setEmail(String email) {
		Email = email;
	}
	public String getEndereco() {
		return Endereco;
	}
	public void setEndereco(String endereco) {
		Endereco = endereco;
	}
	public String getFone() {
		return Fone;
	}
	public void setFone(String fone) {
		Fone = fone;
	}
	public String getLogin() {
		return Login;
	}
	public void setLogin(String login) {
		Login = login;
	}
	public String getNome() {
		return Nome;
	}
	public void setNome(String nome) {
		Nome = nome;
	}

	public String getRG() {
		return RG;
	}
	public void setRG(String rg) {
		RG = rg;
	}
	public String getSenha() {
		return Senha;
	}
	public void setSenha(String senha) {
		Senha = senha;
	}
	public String getUF() {
		return UF;
	}
	public void setUF(String uf) {
		UF = uf;
	}
	public Permissao getPermissao() {
		return Permissao;
	}
	public void setPermissao(Permissao permissao) {
		Permissao = permissao;
	}
	public Date getDtaAdmissao() {
		return DtaAdmissao;
	}
	public void setDtaAdmissao(Date dtaAdmissao) {
		DtaAdmissao = dtaAdmissao;
	}
	public Date getDtaNascimento() {
		return DtaNascimento;
	}
	public void setDtaNascimento(Date dtaNascimento) {
		DtaNascimento = dtaNascimento;
	}

}

Permissao

package com.experience.softwares.sgsc.model;

import java.util.Collection;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;


import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;


@Entity
public class Permissao {
	
	@Id 
	@GeneratedValue
	private int Cod;
	@Column(length=30)
	private String Nome; 
	private Boolean Clientes;
	private Boolean Funcionarios;
	private Boolean Fornecedores;
	private Boolean Pecas;
	private Boolean Carros;
	private Boolean Relatorios;
	private Boolean Tabelas;
	private Boolean Financeiro;
	private Boolean Backup;
	private Boolean Configuracoes;
	private Boolean Acesso;
	private Boolean OrcamentoVendas;
	@OneToMany(mappedBy="Permissao", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Funcionario> funcionarios;
	
	
	public Permissao( String nome, Boolean clientes, Boolean funcionarios, Boolean fornecedores, Boolean pecas, Boolean carros, Boolean relatorios, Boolean tabelas, Boolean financeiro, Boolean backup, Boolean configuracoes, Boolean acesso, Boolean orcamentoVendas) {

		Nome = nome;
		Clientes = clientes;
		Funcionarios = funcionarios;
		Fornecedores = fornecedores;
		Pecas = pecas;
		Carros = carros;
		Relatorios = relatorios;
		Tabelas = tabelas;
		Financeiro = financeiro;
		Backup = backup;
		Configuracoes = configuracoes;
		Acesso = acesso;
		OrcamentoVendas = orcamentoVendas;
	}
	
	public Permissao() {
		super();
	}
	public Boolean getAcesso() {
		return Acesso;
	}
	public void setAcesso(Boolean acesso) {
		Acesso = acesso;
	}
	public Boolean getBackup() {
		return Backup;
	}
	public void setBackup(Boolean backup) {
		Backup = backup;
	}
	public Boolean getCarros() {
		return Carros;
	}
	public void setCarros(Boolean carros) {
		Carros = carros;
	}
	public Boolean getClientes() {
		return Clientes;
	}
	public void setClientes(Boolean clientes) {
		Clientes = clientes;
	}
	public int getCod() {
		return Cod;
	}
	public void setCod(int cod) {
		Cod = cod;
	}
	public Boolean getConfiguracoes() {
		return Configuracoes;
	}
	public void setConfiguracoes(Boolean configuracoes) {
		Configuracoes = configuracoes;
	}
	public Boolean getFinanceiro() {
		return Financeiro;
	}
	public void setFinanceiro(Boolean financeiro) {
		Financeiro = financeiro;
	}
	public Boolean getFornecedores() {
		return Fornecedores;
	}
	public void setFornecedores(Boolean fornecedores) {
		Fornecedores = fornecedores;
	}
	public Boolean getFuncionarios() {
		return Funcionarios;
	}
	public void setFuncionarios(Boolean funcionarios) {
		Funcionarios = funcionarios;
	}
	public String getNome() {
		return Nome;
	}
	public void setNome(String nome) {
		Nome = nome;
	}
	public Boolean getOrcamentoVendas() {
		return OrcamentoVendas;
	}
	public void setOrcamentoVendas(Boolean orcamentoVendas) {
		OrcamentoVendas = orcamentoVendas;
	}
	public Boolean getPecas() {
		return Pecas;
	}
	public void setPecas(Boolean pecas) {
		Pecas = pecas;
	}
	public Boolean getRelatorios() {
		return Relatorios;
	}
	public void setRelatorios(Boolean relatorios) {
		Relatorios = relatorios;
	}
	public Boolean getTabelas() {
		return Tabelas;
	}
	public void setTabelas(Boolean tabelas) {
		Tabelas = tabelas;
	}
	public void setFuncionarios(Collection<Funcionario> funcionarios) {
		this.funcionarios = funcionarios;
	}
	
	public Collection<Funcionario> getFUncionarios() {
		return funcionarios;
	}

}

:idea:
Desde já…Obrigado…

1 Resposta

J

Use:

CascadeType.DELETE_ORPHAN
Criado 3 de dezembro de 2007
Ultima resposta 3 de dez. de 2007
Respostas 1
Participantes 2