Olá pessoal,
Estou tentando remover um registro, onde os mesmo tem uma chave estrangeira em outra tabela. O relacionamento é: pessoa e fotos, onde 1 pessoa pode possuir varias fotos.
Quando tento excluir a pessoa ele informa que foi exluido com sucesso, Só que no log ele mostra a seguinte mensagem:
Hibernate:
delete
from
PESSOA
where
PES_CODIGO=?
13/05/2012 11:47:22 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1451, SQLState: 23000
13/05/2012 11:47:22 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Cannot delete or update a parent row: a foreign key constraint fails (`teste`.`fotos`, CONSTRAINT `FK75A13139DC0B7D84` FOREIGN KEY (`PESSOA_CODIGO`) REFERENCES `PESSOA` (`PES_CODIGO`))
13/05/2012 11:47:22 org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release
INFO: HHH000010: On release of batch it still contained JDBC statements
Utilizando Cascade ele funciona. No entanto eu não queria que funcionasse assim. Gostaria de informar ao usuário o erro.
O problema é que não consigo pegar essa exceção, mesmo colocando o try catch no método que remove:
public void remove(T entity) {
manager = JPAUtil.getEntityManager();
try {
T entidade = manager.merge(entity);
manager.remove(entidade);
} catch (Throwable erro) {
manager.getTransaction().rollback();
erro.printStackTrace();
throw new PersistenceException();
}
}
Alguém sabe o que está errado?
Desde já agradeço.