Olá,
estou desenvolvendo uma aplicação, onde eu tenho a classe “Empresa” e a classe “exame”.
Elas possuem um relacionamento “many-to-many” (na classe Empresa, tenho uma Collection de Exames e na classe exame só tenho mesmo o id e a descrição do mesmo).
No BD tenho a tabela Empresa, a tabela Exame e a tabela Empresa_exame
Até aí tudo bem. Pra inserir, atualizar e listar funciona bacana. O problema é na hora de excluir.
Eu preciso que, ao excluir o exame, ou ele exclua todos os exames (com o mesmo id, logico) da tabela Empresa_exame, ou q ele verifique se tem algum exame nessa tabela Empresa_exame com o mesmo id do exame q estou excluindo, e caso tenha, não deixe excluir, mandando uma msg de erro pro usuário.
Só q eu nao tenho a mínima ideia de como fazer isso, já q não existe a classe “Empresa_exame”.
Alguém poderia me ajudar??
[]'s
Olá, vivigrieco!
Você deve sempre trabalhar com a bag da classe que “realmente” existe. Existe um comando contains(objeto) que testa a existência de um objeto numa collection.
Você poderia, talvez, pesquisar também via query no banco, dentro do mapeamento hbm.xml, através de namedQuery. Dentro de sua session você faz a chamada a namedQuery do mapeamento. O comando da namedQuery podem ser:
select produto
from Produto produto join produto.cores cor
where cor.id in elements(produto.cores)
and cor.id = :idCor
order by produto.id
ou
select produto
from Produto produto join produto.cores cor
where cor.descriao LIKE :nomeCor || '%'
order by produto.id
Veja se ajudou em alguma coisa.
Bom Natal e Feliz Ano Novo.