valtoni 10 de jun. de 2010
Fala companheiro de batalha!
Seguinte: já passei pelo mesmíssimo problema.
Verifique no seu código se em algum ponto obscuro você inadivertidamente não tá tentando fazer um merge em “idRegimeBens” com o valor null. Aí ele realmente vai retornar um erro.
Caso não seja isso, poste exatamente os trechos de código onde você faz o merge, tanto da propriedade em si como da classe que a contém.
Diego.G.A 10 de jun. de 2010
ai que ta, eu quero que ele faça o merge com o valor null
porque quero persisti no banco o valor null para o relacionamento.
valtoni 10 de jun. de 2010
Sim, porém veja se vc tá chamando em algum trecho o seu código assim:
Eu já fiz isso para ter certeza que o objeto era o mesmo do banco, mas, como no seu caso, tive um problema quando executava esse método da maneira acima. Por isso digo: posta todos os “merge” que você tiver no seu código, pra gente olhar! 8)
Diego.G.A 10 de jun. de 2010
public void salvarFisica ( ActionEvent evt ) {
try {
if ( ! estadoCivilDao . verificaExigirRegimeBens ( fisica . getId ())) {
fisica . setIdRegimeBens ( null );
}
if ( fisica . getId (). intValue () == 0 ) {
SituacaoLegal situacao = situacaoLegalDao . findById ( 2L );
Estado e = new Estado ();
Municipio oMunicipio = municipioDao . findById ( fisica
. getIdMunicipioNaturalidade (). getId ());
idEstadoProcedencia = oMunicipio . getIdEstado (). getId ();
e . setId ( idEstadoProcedencia );
fisica . setIdEstadoProcedencia ( e );
fisica . setIdSituacaoLegal ( situacao );
fisica . setId ( pessoa . getId ());
fisicaDao . save ( fisica );
} else {
fisicaDao . merge ( fisica );
}
if ( fisica . getIdRegimeBens () == null ) {
fisica . setIdRegimeBens ( new RegimeBens ());
}
desabilitaAba = false ;
addInfoMessageFromResource ( "salvo_sucesso" );
} catch ( DaoException e1 ) {
e1 . printStackTrace ();
logger . error ( e1 . getMessage (), e1 );
addErrorMessageFromResource ( "erro_salvar" );
}
}
esse é o código que esta sendo executado
valtoni 10 de jun. de 2010
Beleza, agora posta o conteúdo de “fisicaDao.merge()”
Diego.G.A 10 de jun. de 2010
public void merge(T bean) throws DaoException
{
try
{
session.merge(bean);
}
catch(HibernateException he)
{
throw new DaoException(he);
}
}
Diego.G.A 10 de jun. de 2010
esse é o stacktrace do erro
< blockquote > 10 / 06 / 10 10 : 48 ERROR [ AbstractFlushingEventListener ] - Could not synchronize database state with session
org . hibernate . TransientObjectException : object references an unsaved transient instance - save the transient instance before flushing : br . com . pdcase . apoio . regimebens . entity . RegimeBens
at org . hibernate . engine . ForeignKeys . getEntityIdentifierIfNotUnsaved ( ForeignKeys . java : 219 )
at org . hibernate . type . EntityType . getIdentifier ( EntityType . java : 397 )
at org . hibernate . type . ManyToOneType . nullSafeSet ( ManyToOneType . java : 78 )
at org . hibernate . persister . entity . AbstractEntityPersister . dehydrate ( AbstractEntityPersister . java : 2002 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2376 )
at org . hibernate . persister . entity . AbstractEntityPersister . updateOrInsert ( AbstractEntityPersister . java : 2312 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2612 )
at org . hibernate . action . EntityUpdateAction . execute ( EntityUpdateAction . java : 96 )
at org . hibernate . engine . ActionQueue . execute ( ActionQueue . java : 279 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 263 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 168 )
at org . hibernate . event . def . AbstractFlushingEventListener . performExecutions ( AbstractFlushingEventListener . java : 298 )
at org . hibernate . event . def . DefaultFlushEventListener . onFlush ( DefaultFlushEventListener . java : 27 )
at org . hibernate . impl . SessionImpl . flush ( SessionImpl . java : 1000 )
at org . hibernate . impl . SessionImpl . managedFlush ( SessionImpl . java : 338 )
at org . hibernate . transaction . JDBCTransaction . commit ( JDBCTransaction . java : 106 )
at org . jboss . seam . transaction . HibernateTransaction . commit ( HibernateTransaction . java : 108 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 613 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 604 )
at org . jboss . seam . jsf . SeamPhaseListener . handleTransactionsAfterPhase ( SeamPhaseListener . java : 345 )
at org . jboss . seam . jsf . SeamPhaseListener . afterServletPhase ( SeamPhaseListener . java : 245 )
at org . jboss . seam . jsf . SeamPhaseListener . afterPhase ( SeamPhaseListener . java : 196 )
at com . sun . faces . lifecycle . Phase . handleAfterPhase ( Phase . java : 175 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 114 )
at com . sun . faces . lifecycle . LifecycleImpl . execute ( LifecycleImpl . java : 118 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 265 )
at org . mortbay . jetty . servlet . ServletHolder . handle ( ServletHolder . java : 487 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1093 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 83 )
at org . jboss . seam . web . IdentityFilter . doFilter ( IdentityFilter . java : 40 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . MultipartFilter . doFilter ( MultipartFilter . java : 90 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . ExceptionFilter . doFilter ( ExceptionFilter . java : 64 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . RedirectFilter . doFilter ( RedirectFilter . java : 45 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . CharacterEncodingFilter . doFilter ( CharacterEncodingFilter . java : 42 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . ajax4jsf . webapp . BaseXMLFilter . doXmlFilter ( BaseXMLFilter . java : 178 )
at org . ajax4jsf . webapp . BaseFilter . handleRequest ( BaseFilter . java : 290 )
at org . ajax4jsf . webapp . BaseFilter . processUploadsAndHandleRequest ( BaseFilter . java : 368 )
at org . ajax4jsf . webapp . BaseFilter . doFilter ( BaseFilter . java : 495 )
at org . jboss . seam . web . Ajax4jsfFilter . doFilter ( Ajax4jsfFilter . java : 56 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . LoggingFilter . doFilter ( LoggingFilter . java : 60 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . servlet . SeamFilter . doFilter ( SeamFilter . java : 158 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1084 )
at org . mortbay . jetty . servlet . ServletHandler . handle ( ServletHandler . java : 360 )
at org . mortbay . jetty . security . SecurityHandler . handle ( SecurityHandler . java : 216 )
at org . mortbay . jetty . servlet . SessionHandler . handle ( SessionHandler . java : 181 )
at org . mortbay . jetty . handler . ContextHandler . handle ( ContextHandler . java : 726 )
at org . mortbay . jetty . webapp . WebAppContext . handle ( WebAppContext . java : 405 )
at org . mortbay . jetty . handler . ContextHandlerCollection . handle ( ContextHandlerCollection . java : 206 )
at org . mortbay . jetty . handler . HandlerCollection . handle ( HandlerCollection . java : 114 )
at org . mortbay . jetty . handler . HandlerWrapper . handle ( HandlerWrapper . java : 152 )
at org . mortbay . jetty . Server . handle ( Server . java : 324 )
at org . mortbay . jetty . HttpConnection . handleRequest ( HttpConnection . java : 505 )
at org . mortbay . jetty . HttpConnection $ RequestHandler . content ( HttpConnection . java : 842 )
at org . mortbay . jetty . HttpParser . parseNext ( HttpParser . java : 648 )
at org . mortbay . jetty . HttpParser . parseAvailable ( HttpParser . java : 211 )
at org . mortbay . jetty . HttpConnection . handle ( HttpConnection . java : 380 )
at org . mortbay . io . nio . SelectChannelEndPoint . run ( SelectChannelEndPoint . java : 395 )
at org . mortbay . thread . BoundedThreadPool $ PoolThread . run ( BoundedThreadPool . java : 450 )
10 / 06 / 10 10 : 48 WARN [ SeamPhaseListener ] - uncaught exception , passing to exception handler
java . lang . IllegalStateException : Could not commit transaction
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 625 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 604 )
at org . jboss . seam . jsf . SeamPhaseListener . handleTransactionsAfterPhase ( SeamPhaseListener . java : 345 )
at org . jboss . seam . jsf . SeamPhaseListener . afterServletPhase ( SeamPhaseListener . java : 245 )
at org . jboss . seam . jsf . SeamPhaseListener . afterPhase ( SeamPhaseListener . java : 196 )
at com . sun . faces . lifecycle . Phase . handleAfterPhase ( Phase . java : 175 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 114 )
at com . sun . faces . lifecycle . LifecycleImpl . execute ( LifecycleImpl . java : 118 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 265 )
at org . mortbay . jetty . servlet . ServletHolder . handle ( ServletHolder . java : 487 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1093 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 83 )
at org . jboss . seam . web . IdentityFilter . doFilter ( IdentityFilter . java : 40 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . MultipartFilter . doFilter ( MultipartFilter . java : 90 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . ExceptionFilter . doFilter ( ExceptionFilter . java : 64 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . RedirectFilter . doFilter ( RedirectFilter . java : 45 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . CharacterEncodingFilter . doFilter ( CharacterEncodingFilter . java : 42 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . ajax4jsf . webapp . BaseXMLFilter . doXmlFilter ( BaseXMLFilter . java : 178 )
at org . ajax4jsf . webapp . BaseFilter . handleRequest ( BaseFilter . java : 290 )
at org . ajax4jsf . webapp . BaseFilter . processUploadsAndHandleRequest ( BaseFilter . java : 368 )
at org . ajax4jsf . webapp . BaseFilter . doFilter ( BaseFilter . java : 495 )
at org . jboss . seam . web . Ajax4jsfFilter . doFilter ( Ajax4jsfFilter . java : 56 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . LoggingFilter . doFilter ( LoggingFilter . java : 60 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . servlet . SeamFilter . doFilter ( SeamFilter . java : 158 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1084 )
at org . mortbay . jetty . servlet . ServletHandler . handle ( ServletHandler . java : 360 )
at org . mortbay . jetty . security . SecurityHandler . handle ( SecurityHandler . java : 216 )
at org . mortbay . jetty . servlet . SessionHandler . handle ( SessionHandler . java : 181 )
at org . mortbay . jetty . handler . ContextHandler . handle ( ContextHandler . java : 726 )
at org . mortbay . jetty . webapp . WebAppContext . handle ( WebAppContext . java : 405 )
at org . mortbay . jetty . handler . ContextHandlerCollection . handle ( ContextHandlerCollection . java : 206 )
at org . mortbay . jetty . handler . HandlerCollection . handle ( HandlerCollection . java : 114 )
at org . mortbay . jetty . handler . HandlerWrapper . handle ( HandlerWrapper . java : 152 )
at org . mortbay . jetty . Server . handle ( Server . java : 324 )
at org . mortbay . jetty . HttpConnection . handleRequest ( HttpConnection . java : 505 )
at org . mortbay . jetty . HttpConnection $ RequestHandler . content ( HttpConnection . java : 842 )
at org . mortbay . jetty . HttpParser . parseNext ( HttpParser . java : 648 )
at org . mortbay . jetty . HttpParser . parseAvailable ( HttpParser . java : 211 )
at org . mortbay . jetty . HttpConnection . handle ( HttpConnection . java : 380 )
at org . mortbay . io . nio . SelectChannelEndPoint . run ( SelectChannelEndPoint . java : 395 )
at org . mortbay . thread . BoundedThreadPool $ PoolThread . run ( BoundedThreadPool . java : 450 )
Caused by : org . hibernate . TransientObjectException : object references an unsaved transient instance - save the transient instance before flushing : br . com . pdcase . apoio . regimebens . entity . RegimeBens
at org . hibernate . engine . ForeignKeys . getEntityIdentifierIfNotUnsaved ( ForeignKeys . java : 219 )
at org . hibernate . type . EntityType . getIdentifier ( EntityType . java : 397 )
at org . hibernate . type . ManyToOneType . nullSafeSet ( ManyToOneType . java : 78 )
at org . hibernate . persister . entity . AbstractEntityPersister . dehydrate ( AbstractEntityPersister . java : 2002 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2376 )
at org . hibernate . persister . entity . AbstractEntityPersister . updateOrInsert ( AbstractEntityPersister . java : 2312 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2612 )
at org . hibernate . action . EntityUpdateAction . execute ( EntityUpdateAction . java : 96 )
at org . hibernate . engine . ActionQueue . execute ( ActionQueue . java : 279 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 263 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 168 )
at org . hibernate . event . def . AbstractFlushingEventListener . performExecutions ( AbstractFlushingEventListener . java : 298 )
at org . hibernate . event . def . DefaultFlushEventListener . onFlush ( DefaultFlushEventListener . java : 27 )
at org . hibernate . impl . SessionImpl . flush ( SessionImpl . java : 1000 )
at org . hibernate . impl . SessionImpl . managedFlush ( SessionImpl . java : 338 )
at org . hibernate . transaction . JDBCTransaction . commit ( JDBCTransaction . java : 106 )
at org . jboss . seam . transaction . HibernateTransaction . commit ( HibernateTransaction . java : 108 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 613 )
… 47 more
10 / 06 / 10 10 : 48 ERROR [ SeamPhaseListener ] - swallowing exception
java . lang . IllegalStateException : Could not commit transaction
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 625 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 604 )
at org . jboss . seam . jsf . SeamPhaseListener . handleTransactionsAfterPhase ( SeamPhaseListener . java : 345 )
at org . jboss . seam . jsf . SeamPhaseListener . afterServletPhase ( SeamPhaseListener . java : 245 )
at org . jboss . seam . jsf . SeamPhaseListener . afterPhase ( SeamPhaseListener . java : 196 )
at com . sun . faces . lifecycle . Phase . handleAfterPhase ( Phase . java : 175 )
at com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 114 )
at com . sun . faces . lifecycle . LifecycleImpl . execute ( LifecycleImpl . java : 118 )
at javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 265 )
at org . mortbay . jetty . servlet . ServletHolder . handle ( ServletHolder . java : 487 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1093 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 83 )
at org . jboss . seam . web . IdentityFilter . doFilter ( IdentityFilter . java : 40 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . MultipartFilter . doFilter ( MultipartFilter . java : 90 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . ExceptionFilter . doFilter ( ExceptionFilter . java : 64 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . RedirectFilter . doFilter ( RedirectFilter . java : 45 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . CharacterEncodingFilter . doFilter ( CharacterEncodingFilter . java : 42 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . ajax4jsf . webapp . BaseXMLFilter . doXmlFilter ( BaseXMLFilter . java : 178 )
at org . ajax4jsf . webapp . BaseFilter . handleRequest ( BaseFilter . java : 290 )
at org . ajax4jsf . webapp . BaseFilter . processUploadsAndHandleRequest ( BaseFilter . java : 368 )
at org . ajax4jsf . webapp . BaseFilter . doFilter ( BaseFilter . java : 495 )
at org . jboss . seam . web . Ajax4jsfFilter . doFilter ( Ajax4jsfFilter . java : 56 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . web . LoggingFilter . doFilter ( LoggingFilter . java : 60 )
at org . jboss . seam . servlet . SeamFilter $ FilterChainImpl . doFilter ( SeamFilter . java : 69 )
at org . jboss . seam . servlet . SeamFilter . doFilter ( SeamFilter . java : 158 )
at org . mortbay . jetty . servlet . ServletHandler $ CachedChain . doFilter ( ServletHandler . java : 1084 )
at org . mortbay . jetty . servlet . ServletHandler . handle ( ServletHandler . java : 360 )
at org . mortbay . jetty . security . SecurityHandler . handle ( SecurityHandler . java : 216 )
at org . mortbay . jetty . servlet . SessionHandler . handle ( SessionHandler . java : 181 )
at org . mortbay . jetty . handler . ContextHandler . handle ( ContextHandler . java : 726 )
at org . mortbay . jetty . webapp . WebAppContext . handle ( WebAppContext . java : 405 )
at org . mortbay . jetty . handler . ContextHandlerCollection . handle ( ContextHandlerCollection . java : 206 )
at org . mortbay . jetty . handler . HandlerCollection . handle ( HandlerCollection . java : 114 )
at org . mortbay . jetty . handler . HandlerWrapper . handle ( HandlerWrapper . java : 152 )
at org . mortbay . jetty . Server . handle ( Server . java : 324 )
at org . mortbay . jetty . HttpConnection . handleRequest ( HttpConnection . java : 505 )
at org . mortbay . jetty . HttpConnection $ RequestHandler . content ( HttpConnection . java : 842 )
at org . mortbay . jetty . HttpParser . parseNext ( HttpParser . java : 648 )
at org . mortbay . jetty . HttpParser . parseAvailable ( HttpParser . java : 211 )
at org . mortbay . jetty . HttpConnection . handle ( HttpConnection . java : 380 )
at org . mortbay . io . nio . SelectChannelEndPoint . run ( SelectChannelEndPoint . java : 395 )
at org . mortbay . thread . BoundedThreadPool $ PoolThread . run ( BoundedThreadPool . java : 450 )
Caused by : org . hibernate . TransientObjectException : object references an unsaved transient instance - save the transient instance before flushing : br . com . pdcase . apoio . regimebens . entity . RegimeBens
at org . hibernate . engine . ForeignKeys . getEntityIdentifierIfNotUnsaved ( ForeignKeys . java : 219 )
at org . hibernate . type . EntityType . getIdentifier ( EntityType . java : 397 )
at org . hibernate . type . ManyToOneType . nullSafeSet ( ManyToOneType . java : 78 )
at org . hibernate . persister . entity . AbstractEntityPersister . dehydrate ( AbstractEntityPersister . java : 2002 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2376 )
at org . hibernate . persister . entity . AbstractEntityPersister . updateOrInsert ( AbstractEntityPersister . java : 2312 )
at org . hibernate . persister . entity . AbstractEntityPersister . update ( AbstractEntityPersister . java : 2612 )
at org . hibernate . action . EntityUpdateAction . execute ( EntityUpdateAction . java : 96 )
at org . hibernate . engine . ActionQueue . execute ( ActionQueue . java : 279 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 263 )
at org . hibernate . engine . ActionQueue . executeActions ( ActionQueue . java : 168 )
at org . hibernate . event . def . AbstractFlushingEventListener . performExecutions ( AbstractFlushingEventListener . java : 298 )
at org . hibernate . event . def . DefaultFlushEventListener . onFlush ( DefaultFlushEventListener . java : 27 )
at org . hibernate . impl . SessionImpl . flush ( SessionImpl . java : 1000 )
at org . hibernate . impl . SessionImpl . managedFlush ( SessionImpl . java : 338 )
at org . hibernate . transaction . JDBCTransaction . commit ( JDBCTransaction . java : 106 )
at org . jboss . seam . transaction . HibernateTransaction . commit ( HibernateTransaction . java : 108 )
at org . jboss . seam . jsf . SeamPhaseListener . commitOrRollback ( SeamPhaseListener . java : 613 )
… 47 more
</ blockquote >
Diego.G.A 10 de jun. de 2010
Bem eu fiz uns testes aqui e acabei descobrindo o porque do erro.
antes de ele enviar este objeto para o formulario ele carregava do banco e o classloader do hibernate modificava objeto com as tecnicas de lazy
e quando eu ia persisti o objeto o mesmo tentava fazer o lazy no meu objeto e não encontrava nenhuma referencia do mesmo no banco por estar null.
a minha solução foi criar um novo objeto da classe e passar os mesmos valores do objeto carregado pelo hibernate para poder persistir no banco.
código abaixo para criar o clone da classe
Fisica f = new Fisica ();
f . setId ( fisica . getId ());
f . setIdEstadoEmissor ( fisica . getIdEstadoEmissor ());
f . setIdEstadoProcedencia ( fisica . getIdEstadoEmissor ());
f . setIdEstadoCivil ( fisica . getIdEstadoCivil ());
f . setIdGrauInstrucao ( fisica . getIdGrauInstrucao ());
f . setIdProfissao ( fisica . getIdProfissao ());
f . setIdMunicipioNaturalidade ( fisica . getIdMunicipioNaturalidade ());
f . setIdRegimeBens ( fisica . getIdRegimeBens ());
f . setIdSituacaoLegal ( fisica . getIdSituacaoLegal ());
f . setIdTipoDocumento ( fisica . getIdTipoDocumento ());
f . setApelido ( fisica . getApelido ());
f . setNomeMae ( fisica . getNomeMae ());
f . setNomePai ( fisica . getNomePai ());
f . setDataNascimento ( fisica . getDataNascimento ());
f . setSiglaSexo ( fisica . getSiglaSexo ());
f . setRegistroGeral ( fisica . getRegistroGeral ());
f . setDataRegistroGeral ( fisica . getDataRegistroGeral ());
f . setOrgaoEmissor ( fisica . getOrgaoEmissor ());
f . setSituacaoContaSimplificada ( fisica . getSituacaoContaSimplificada ());
f . setDataProcedencia ( fisica . getDataProcedencia ());
f . setNomeLocalProcedencia ( fisica . getNomeLocalProcedencia ());
f . setDataNaturalizacao ( fisica . getDataNaturalizacao ());
f . setSituacaoEmpregado ( fisica . getSituacaoEmpregado ());
f . setStatus ( fisica . getStatus ());
f . setDataAtualizacao ( fisica . getDataAtualizacao ());
f . setIdUsuario ( fisica . getIdUsuario ());
f . setIdEstacao ( fisica . getIdEstacao ());
f . setNomeProcedure ( fisica . getNomeProcedure ());
fisicaDao . merge ( f );
valtoni 10 de jun. de 2010
Diego,
Não tem como ele fazer um load de um null e depois dar um erro de “Transient Value” depois disso. O problema são sessões diferentes. Em algum ponto do seu código você deve testar o valor do objeto para depois fazer um merge. Sacou? Cuidado ao fazer um clone pra resolver isso, pois você pode estar varrendo a poeira pra debaixo do tapete (não digo que está, mas pode estar).