O problema é que isso não funciona se minha chave estrangeira na tabela (FILHO.CODPAI) é NOT NULL. Ele retorna a seguinte exception:
Could not create entity
java.sql.SQLException: General error, message from server: “Column ‘CODPAI’ cannot be null”
Se eu tiro essa constraint, com o campo permitindo NULL, funciona tudo perfeitamente.
Alguém sabe como corrigir isso? Não posso deixar o campo como NOT NULL no banco.
Posso estar falando besteira, mas até onde sei a definição CMP não permite isso!!! Entretanto a maioria dos containers implementa soluções próprias para esse problema!!!
Ou seja, a resposta depende do servidor de aplicação que vc está usando!!!
Fallow
cv1
…que, por sinal, qual é?
J
Joao_Luiz
Eu estou usando JBoss.
Eu achei em alguns foruns uma solução para Weblogic.
Tem uma configuração dele que você pode por:
<delay-database-insert-until>ejbPostCreate</delay-database-insert-until>
Ou seja, ele só dá o INSERT no banco depois do ejbPostCreate.
Tem alguma coisa do tipo no JBoss?
Obrigado
João
TedLoprao
Dá uma olhada no fórum do JBoss, parece que tem uma versão que tu podese fazer a seguinte configuração:
Entretanto, não me lembro a versão do JBoss que era necessária para essa configuração funcionar!!!
Outra opção que tbm achei lá no fórum do JBoss foi criar a constraints como DEFERRABLE (ou algo parecido), onde a constraint só faz a validação após o fim da sessão!!!
Mas tbm não cheguei a testar, a solução que acabei usando foi utilizar BMP mesmo para não ficar preso ao JBoss!!!
Fallow
J
Joao_Luiz
Obrigado Rodrigo,
eu também tinha encontrado essa solução, porém esbarrei num outro problema.
Eu estou usando mySQL, com a chave primária com auto_increment.
Pelo que eu achei num fórum, o container precisa saber a chave primária após chamar o ejbCreate e antes de chamar o ejbPostCreate… ou seja, ele tem que dar o INSERT no ejbCreate mesmo.
Vou tentar achar mais coisas, mas obrigado pela ajuda.
[]'s
João
H
hklemp
Olá a todos,
Eu tb estou passando pelo mesmo problema , estou usando firebird e o JBOSS 3.2, alguém ja descobriu um maneira de contornar esse problema?
Com relação a essa configuração mostrada anteriorente onde devo coloca-la?
[]’