| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/02/2007 11:06:00
|
xgucax
JavaBaby
![[Avatar]](/images/avatar/d4ff76af57c1ebcc7eca3807b9a431a6.jpg)
Membro desde: 07/10/2006 09:06:36
Mensagens: 92
Offline
|
Senhores,
Na recuperação de um objeto composto da minha aplicação, a seguinte exceção é lançada:
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
|
Embrace and extend this _|_
<hr> |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/02/2007 11:40:06
|
chun
GUJ Master
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline
|
xgucax wrote:Senhores,
Na recuperação de um objeto composto da minha aplicação, a seguinte exceção é lançada:
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
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.
|
Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...
------
Controverso Eu ? http://www.go-java.com/blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/02/2007 15:28:13
|
xgucax
JavaBaby
![[Avatar]](/images/avatar/d4ff76af57c1ebcc7eca3807b9a431a6.jpg)
Membro desde: 07/10/2006 09:06:36
Mensagens: 92
Offline
|
chun wrote:
xgucax wrote:Senhores,
Na recuperação de um objeto composto da minha aplicação, a seguinte exceção é lançada:
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
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.
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
|
Embrace and extend this _|_
<hr> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2008 11:01:55
|
JotaJota
Java Ninja
![[Avatar]](/images/avatar/902447c6ce9d4f39e12a463b4d4ff759.jpg)
Membro desde: 11/05/2007 03:36:11
Mensagens: 256
Localização: Araraquara
Offline
|
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.
sim Existe uma maneira de Ignorar este erro:
Adicione no mapeamento annotation esse codigo:
@NotFound(action=NotFoundAction.IGNORE)
Lembrando que esse annotation apenas vai mascarar o erro.. e não trata-lo
Se alguem discorda por favor , comente
Atenciosamente,
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2009 14:08:24
|
joaoorso
JavaTeenager
![[Avatar]](/images/avatar/25819c8fe224033cc89bafa6a16cdd04.jpg)
Membro desde: 23/11/2006 21:48:55
Mensagens: 179
Localização: Curitiba - PR
Offline
|
No mínimo é mySQL.
|
João Ricardo Orso .
SCJP 5.0.
TSI
----------------------------------------------------------------
Os níveis de visibilidade do Java são: public, default, protected, private e " protected by Chuck Norris ", não tente acessar um atributo com este último modificador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2009 12:48:24
|
geidivan
JavaTeenager
![[Avatar]](/images/avatar/60e6ea8c63d0c5e6b8eecd289c4da78e.jpg)
Membro desde: 11/09/2008 17:07:59
Mensagens: 172
Offline
|
joaoorso wrote:No mínimo é mySQL.
Este não é um problema do banco, mas sim do DBA que cria tabelas tão frágeis assim. Já encontrei o mesmo problema em um banco Oracle 10 em uma grande empresa.
O MySQL é um excelente banco de dados.
|
Geidivan J. de Brito
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2010 13:14:35
|
viniciuspadua
JavaEvangelist
![[Avatar]](/images/avatar/d0e5dfb52f4a6325738b1042cce523d7.png)
Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline
|
comigo esta acontecendo o mesmo problema, em um relacionamento muitos para um! como resolvo esse caso ? creio que era apra retornar nulo!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 09:23:08
|
jvds@bol.com.br
Java Ninja
Membro desde: 25/09/2006 09:30:24
Mensagens: 289
Offline
|
xgucax wrote:
chun wrote:
xgucax wrote:Senhores,
Na recuperação de um objeto composto da minha aplicação, a seguinte exceção é lançada:
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
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.
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
Conseguiu resolver este problema ?
This message was edited 1 time. Last update was at 06/12/2011 09:24:57
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 09:26:01
|
viniciuspadua
JavaEvangelist
![[Avatar]](/images/avatar/d0e5dfb52f4a6325738b1042cce523d7.png)
Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline
|
quando o relacionamento não for obrigatório utilizo isso!
This message was edited 1 time. Last update was at 06/12/2011 09:26:12
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 09:52:24
|
jvds@bol.com.br
Java Ninja
Membro desde: 25/09/2006 09:30:24
Mensagens: 289
Offline
|
viniciuspadua wrote:quando o relacionamento não for obrigatório utilizo isso!
E para
Obrigado !!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 09:53:59
|
viniciuspadua
JavaEvangelist
![[Avatar]](/images/avatar/d0e5dfb52f4a6325738b1042cce523d7.png)
Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline
|
todos tem o optional!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 10:00:26
|
jvds@bol.com.br
Java Ninja
Membro desde: 25/09/2006 09:30:24
Mensagens: 289
Offline
|
viniciuspadua wrote:todos tem o optional!
Nao @OneToMany
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 10:28:58
|
jvds@bol.com.br
Java Ninja
Membro desde: 25/09/2006 09:30:24
Mensagens: 289
Offline
|
viniciuspadua wrote:todos tem o optional!
Mesmo colocando optional=true ainda continuo tomando exception
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 10:56:30
|
viniciuspadua
JavaEvangelist
![[Avatar]](/images/avatar/d0e5dfb52f4a6325738b1042cce523d7.png)
Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline
|
Mostre seu mapeamento
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2011 12:12:01
|
jvds@bol.com.br
Java Ninja
Membro desde: 25/09/2006 09:30:24
Mensagens: 289
Offline
|
Sobre o meu problema e o seguinte estava dando uma olhada na documentacao do Hibernate e reparei a seguinte situacao hoje estou usando.
load()
caso nao exista este ID retorno e exception org.hibernate.ObjectNotFoundException
caso se eu usar o get()
caso nao exista este ID retorno null
Isso esta certo e que no meu caso estou fazendo uma consulta pela primary key de meu banco para nao precisar criar CRITERIA resolvi usar o load para encurtar o tempo de desenvolvimento.
|
|
|
 |
|
|