[quote=xgucax][quote=chun][quote=xgucax]Senhores,
Na recuperação de um objeto composto da minha aplicação, a seguinte exceção é lançada:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.com.cnnt.imanagerweb.beans.Unidade#11]
O problema é que na tabela que representa o objeto composto, a chave estrangeira correspondente ao objeto componente aponta para um valor nulo. No meu caso, não existe um objeto Unidade com o ID 11, mas meu objeto composto aponta para ele.
Quando esta exceção é lançada, o objeto não é retornado. Gostaria saber se há algum modo de ignorar este erro de integridade (tendo em vista que a base do cliente não pode ser alterada por mim) trazendo o objeto componente com o valor nulo.
Desde já agradeço
[/quote]
Sua base de dados está com um sério problema de design… voce deve ativar as constraints do seu banco para evitar esse tipo de “XUNXO”…
se nao existe reg 11 , este campo OU deveria estar NULL OU deveria ter seu registro apagado…
Para evitar a carga de relacionamentos use LAZY=true no mapeamento… porem isso vai ser apenas paleativo… voce terá que corrigir isso.[/quote]
Olá chun,
Eu sei que isto é um grande problema. Creio que não me expressei bem, mas a base de dados não é minha nem muito menos pode ser alterada por mim. a única coisa que posso fazer é CRUD sobre os registros (no caso de remoção me foi orientado que não alterasse os dados já existentes, ou seja, removesse apenas aquilo que insiro).
A opção de Lazy=true não é interessante para mim pois preciso destes objetos (para os que existam).
Pensei em criar algum método que parseasse estes erros por exemplo, criasse projeções que não contém os objetos componentes e tentasse inicializá-los. Caso houvesse sucesso na inicialização, o objeto seria retornado completo. Caso contrário, retornasse null.
O problema desta abordagem é que eu teria que reescrever muito código (código que teoricamente está correto para uma base correta). Aí gostaria de saber se não existe algum recurso 9de mapeamento, ou outro tipo) para isto
Abraços[/quote]
Conseguiu resolver este problema ?