Permitir ou não exclusão de registro

2 respostas
D

e aí pessoal, tudo certo?

a minha dúvida é a seguinte.
eu tenho duas classes que se relacionam, Fornecedor e Titulos assim
um Fornecedor tem muitos Titulos que preciso pagar.

o relacionamento está mapeado assim:

public class Fornecedor {
...
	@OneToMany(mappedBy="fornecedor")
	@Cascade(value={org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
	private Set<Titulo> titulos = new HashSet<Titulo>();
...
}

e

public class Titulo {
...
	@ManyToOne
	private Fornecedor fornecedor;
...

}

da forma que está, se eu mando excluir o fornecedor, ele faz exatamente o que eu defini no mapeamento. o próprio fornecedor é excluído e todos os títulos que fazem referência à ele são excluídos também.

o que eu queria fazer é impedir a exclusão desse fornecedor, caso exista algum título relacionado.

se não conseguirem entender, por favor, me avisem para que eu possa tentar explicar.

ah, estou usando jpa com hibernate e vraptor.

valeu

2 Respostas

felipealbuquerque

Dependendo do SGBD, você pode restringir a exclusão de registros que têm outros registros dependentes.
Outra solução seria fazer uma consulta por títulos do fornecedor a ser excluído antes de fazer a exclusão.

D

eu pensei em fazer alguma assim como você disse, fazendo uma consulta antes de realizar a exclusão, mas acho que daria muito trabalho, e faria isso somente se não tivesse outra forma possível de fazer.

o que eu queria saber e se tem como fazer isso automaticamente pelo hibernate, alguma coisa que gerasse uma exceção ou alguma coisa parecida…
será q isso existe?

Criado 20 de novembro de 2007
Ultima resposta 20 de nov. de 2007
Respostas 2
Participantes 2