Duvida sobre excluir objeto

Bom, tenho uma tabela Funcionario que é Chave estrangeira de 2 Tabelas, Agendamento e Serviço. Utilizo o nome dos funcionários no combobox até ai OK. Estou tentando excluir um funcionário que ele possui vários agendamentos e serviços com nome dele, como faço para excluir ele direto e automaticamente excluir informações que esteja atrelado entre ele?

*preciso colocar algo em minha anotação @ManyToOne?
@ManyToOne @JoinColumn(name ="codigo_funcionario") private Funcionario funcionario;

Olá,

  • Recomendo criar uma opção de inativar o funcionário, mantendo todos os registros de agendamentos e serviços armazenados, já que um funcionário[foreign key] precisa agendar algo para um cliente[foreign key], sendo assim, se este funcionário tiver efetuado algum agendamento para amanhã e vc excluir todos os agendamentos associados a este funcionário, perderá estes registros, se vc tiver o controle de todos os agendamentos e/ou serviços efetuados ao cliente, é necessário manter o registro para saber quem efetuou tal serviço, e mais, se vc excluir um registro do valor de um serviço efetuados no banco de dados, como que vc vai saber o total de faturamento mensal ou anual? Ex.: Vc imprimiu um relatório mostrando que foi faturado R$ 99.999,99 de serviços no mês de março de 2016. Se vc excluir um registro e imprimir outro relatório, o valor vai sair incorreto, já que informações foram perdidas…

Resumindo: Não é recomendado a exclusão de dados do banco em ambiente de produção, ou mesmo em ambiente acadêmico, já que temos que ter a ideia de desenvolver nosso sistema para disponibilizarmos externamente.

  • Mas caso seja apenas para testes e aprendizado, o mysql disponibiliza a seguinte funcionalidade a qual vc poderia pesquisar para saber se o mesmo ocorre para o banco de dados qual vc está utilizando:

SET FOREIGN_KEY_CHECKS=0;

  • A função acima permite que vc exclua qualquer chave primária desconsiderando as chaves estrangeiras, porém, pode ocorrer de vc excluir a chave primária de número 5 e quando vc cadastrar novamente um usuário com a chave 5, todos os registros irão ficar associados ao mesmo, como se vc tivesse feito apenas alteração no usuário.

Obs.: Não testei para saber se realmente o mesmo ocorre, mas já utilizei sistemas o qual aconteceu isto e presumo que os produtores do mesmo desbloqueou a verificação de foreign key com o código acima.

massa! ajudou muito seu comentário, é porque sou novo no desenvolvimento não consegui pensar assim rsrs. esta opção fica no próprio Mysql andei? poderia caso você saiba me da uma dica como deixaria isso no código?