[RESOLVIDO] Salvando List<Enum> erro LAZY

7 respostas Resolvido
programação
A

Bom dia pessoal,

Tenho uma classe de Enum, onde possuo uma lista de relacionamentos que desejo atribuir a uma tabela. Ao tentar salvar no banco de dados é retornado a seguinte mensagem:

Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection, could not initialize proxy - no Session

o Enum está identificado na tabela da seguinte forma:

@ElementCollection(fetch = FetchType.LAZY, targetClass = EnumTipoRelacionamento.class)
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private List<EnumTipoRelacionamento> tipoRelacionamento;
//Getters and Setters

Alguem sabe como posso resolver esse problema?

7 Respostas

darlan_machado

Classe é classe e enum é enum (tecnicamente, é um tipo especial de classe que representa itens enumerados).
Dá uma olhada

A

darlan_machado obrigado pela dica, mas não consegui fazer funcionar… fiz alteração na Entidade ficando assim:

@ElementCollection(fetch = FetchType.LAZY, targetClass = EnumTipoRelacionamento.class)
@Enumerated(EnumType.STRING)
Collection<EnumTipoRelacionamento> tipoRelacionamentos;
//Getters and Setters

porém continua não dando certo… a mensagem de erro mudou, conforme mostra a imagem abaixo…

darlan_machado

Tem o stack inteiro do erro ou apenas essa parte? Principalmente a parte do “Caused by”

A

Segue na integra…

Hibernate:

select

bairro0_.id as id1_0_2_,

bairro0_.cidade_id as cidade3_0_2_,

bairro0_.descricao as descrica2_0_2_,

cidade1_.id as id1_1_0_,

cidade1_.descricao as descrica2_1_0_,

cidade1_.estado_id as estado3_1_0_,

estado2_.id as id1_2_1_,

estado2_.descricao as descrica2_2_1_,

estado2_.pais_id as pais4_2_1_,

estado2_.uf as uf3_2_1_

from

Bairro bairro0_

inner join

Cidade cidade1_

on bairro0_.cidade_id=cidade1_.id

left outer join

Estado estado2_

on cidade1_.estado_id=estado2_.id

where

bairro0_.id=?

Hibernate:

select

pais0_.id as id1_3_0_,

pais0_.descricao as descrica2_3_0_,

pais0_.sigla as sigla3_3_0_

from

Pais pais0_

where

pais0_.id=?

.:: Bean - salvar ::.

.:: Service - verificarDuplicidade ::.

.:: Repository - verificarDuplicidade ::.

.:: Repository CPF ::.

Hibernate:

select

parceirone0_.id as id1_6_,

parceirone0_.bairro_id as bairro25_6_,

parceirone0_.cep as cep2_6_,

parceirone0_.cnpj as cnpj3_6_,

parceirone0_.cpf as cpf4_6_,

parceirone0_.dataExpedicao as dataExpe5_6_,

parceirone0_.dataNascimento as dataNasc6_6_,

parceirone0_.email as email7_6_,

parceirone0_.estadoCivil as estadoCi8_6_,

parceirone0_.inscricaoEstadual as inscrica9_6_,

parceirone0_.inscricaoMunicipal as inscric10_6_,

parceirone0_.nome as nome11_6_,

parceirone0_.nomeFantasia as nomeFan12_6_,

parceirone0_.nomeMae as nomeMae13_6_,

parceirone0_.nomePai as nomePai14_6_,

parceirone0_.numero as numero15_6_,

parceirone0_.orgaoEmissor as orgaoEm16_6_,

parceirone0_.rg as rg17_6_,

parceirone0_.rua as rua18_6_,

parceirone0_.status as status19_6_,

parceirone0_.suframa as suframa20_6_,

parceirone0_.telefone1 as telefon21_6_,

parceirone0_.telefone2 as telefon22_6_,

parceirone0_.telefone3 as telefon23_6_,

parceirone0_.tipoPessoa as tipoPes24_6_

from

parceiro_negocio parceirone0_

where

upper(parceirone0_.nome)=?

and parceirone0_.cpf=?

.:: Repository - guardar ::.

.:: Nome: GEISY ::.

.:: TipoRelacionamento: [CLIENTE, COLABORADOR] ::.

Hibernate:

select

bairro0_.id as id1_0_2_,

bairro0_.cidade_id as cidade3_0_2_,

bairro0_.descricao as descrica2_0_2_,

cidade1_.id as id1_1_0_,

cidade1_.descricao as descrica2_1_0_,

cidade1_.estado_id as estado3_1_0_,

estado2_.id as id1_2_1_,

estado2_.descricao as descrica2_2_1_,

estado2_.pais_id as pais4_2_1_,

estado2_.uf as uf3_2_1_

from

Bairro bairro0_

inner join

Cidade cidade1_

on bairro0_.cidade_id=cidade1_.id

left outer join

Estado estado2_

on cidade1_.estado_id=estado2_.id

where

bairro0_.id=?

Hibernate:

select

pais0_.id as id1_3_0_,

pais0_.descricao as descrica2_3_0_,

pais0_.sigla as sigla3_3_0_

from

Pais pais0_

where

pais0_.id=?

Hibernate:

insert

into

parceiro_negocio

(bairro_id, cep, cnpj, cpf, dataExpedicao, dataNascimento, email, estadoCivil, inscricaoEstadual, inscricaoMunicipal, nome, nomeFantasia, nomeMae, nomePai, numero, orgaoEmissor, rg, rua, status, suframa, telefone1, telefone2, telefone3, tipoPessoa)

values

(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

Hibernate:

insert

into

ParceiroNegocio_tipoRelacionamentos

(ParceiroNegocio_id, tipoRelacionamentos)

values

(?, ?)

jun 08, 2018 1:33:43 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute

ADVERTÊNCIA: #{parceiroNegocioBean.salvar()}: javax.persistence.RollbackException: Error while committing the transaction

javax.faces.FacesException: #{parceiroNegocioBean.salvar()}: javax.persistence.RollbackException: Error while committing the transaction

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:117)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1374)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: javax.faces.el.EvaluationException: javax.persistence.RollbackException: Error while committing the transaction

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)

 59 more

Caused by: javax.persistence.RollbackException: Error while committing the transaction

at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:92)

at util.jpa.TransactionInterceptor.invoke(TransactionInterceptor.java:47)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:85)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:73)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:57)

at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79)

at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68)

at repository.ParceiroNegocioRepository$Proxy$_$$<em>WeldSubclass.guardar(Unknown Source)

at service.ParceiroNegocioService.verificarDuplicidade(ParceiroNegocioService.java:25)

at controller.ParceiroNegocioBean.salvar(ParceiroNegocioBean.java:66)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.ref2018-06-08 13:33:43,399 ERROR [util.jsf.JsfExceptionHandler] Erro de sistema: #{parceiroNegocioBean.salvar()}: javax.persistence.RollbackException: Error while committing the transaction

javax.faces.FacesException: #{parceiroNegocioBean.salvar()}: javax.persistence.RollbackException: Error while committing the transaction

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:89)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1374)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: javax.faces.FacesException: #{parceiroNegocioBean.salvar()}: javax.persistence.RollbackException: Error while committing the transaction

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:117)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

 55 more

Caused by: javax.faces.el.EvaluationException: javax.persistence.RollbackException: Error while committing the transaction

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)

 59 more

Caused by: javax.persistence.RollbackException: Error while committing the transaction

at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:92)

at util.jpa.TransactionInterceptor.invoke(TransactionInterceptor.java:47)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:85)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:73)

at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:57)

at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79)

at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68)

at repository.ParceiroNegocioRepository$Proxy$</em>$$_WeldSubclass.guardar(Unknown Source)

at service.ParceiroNegocioService.verificarDuplicidade(ParceiroNegocioService.java:25)

at controller.ParceiroNegocioBean.salvar(ParceiroNegocioBean.java:66)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.apache.el.parser.AstValue.invoke(AstValue.java:247)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)

at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)

at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

 60 more

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum

at org.hibernate.type.EnumType.nullSafeSet(EnumType.java:155)

at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:158)

at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:863)

at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1253)

at org.hibernate.action.internal.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)

at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:377)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:369)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:292)

at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:339)

at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)

at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)

at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404)

at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)

at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:75)

 84 more

2018-06-08 13:33:43,401 INFO  [org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl] HHH000010: On release of batch it still contained JDBC statements

lect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.apache.el.parser.AstValue.invoke(AstValue.java:247)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)

at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)

at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

 60 more

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum

at org.hibernate.type.EnumType.nullSafeSet(EnumType.java:155)

at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:158)

at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:863)

at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1253)

at org.hibernate.action.internal.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)

at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:377)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:369)

at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:292)

at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:339)

at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)

at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)

at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404)

at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)

at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:75)

 84 more
darlan_machado

Veja, o mapeamento sugerido no link que eu indiquei define uma tabela auxiliar para a coleção, o que você, aparentemente, não fez. Esta é a causa do erro.

A

darlan, desculpe, mas não consegui entender como eu deveria proceder… vou detalhar um pouco melhor a minha dúvida, talvez eu não tenha conseguido me expressar direito… Segue:

Tenho a seguinte enum:
TipoRelacionamento.java (350 Bytes)

package modelo;

public enum TipoRelacionamento {

CLIENTE(Cliente),

FORNECEDOR(Fornecedor),

COLABORADOR(Colaborador),

ESTABELECIMENTO(Estabelecimento);

private String descricao;

TipoRelacionamento(String descricao){

this.descricao = descricao;

}
public String getDescricao() {

return descricao;

}

}

Na minha classe “modelo” “parceiroNegocio” essa enum esta relacionada da seguinte forma:
ParceiroNegocio.java (8,1 KB)

@ElementCollection(fetch = FetchType.LAZY, targetClass = EnumTipoRelacionamento.class)
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private List<EnumTipoRelacionamento> tipoRelacionamento;

No Bean “ParceiroNegocioBean” instanciei a classe modelo, conforme mostra a imagem abaixo:
ParceiroNegocioBean.java (2,8 KB)

Na página de cadastro eu coloquei para ficar dinâmico de acordo com o enum… se acrescentar ou excluir um item nesse enum automaticamente acrescenta ou exclui o item na pagina de cadastro…
ParceiroNegocioCadastro.xhtml (9,1 KB)

<p:selectManyCheckbox id=“relacionamento” value="#{parceiroNegocioBean.parceiroNegocio.tipoRelacionamento}" >

<f:selectItems value="#{parceiroNegocioBean.tipoRelacionamentos}" var=“tipoRelacionamentos” itemValue="#{tipoRelacionamentos}" itemLabel="#{tipoRelacionamentos.descricao}"/>

</p:selectManyCheckbox>

Conforme imagem abaixo


ao clicar no botão salvar ele seguirá a seguinte sequencia…

1º Bean:
Chama o método salvar… que por sua vez chama a classe service o método VerificarDuplicidade

2º Service
A classe service faz a verificação se já existe algum cadastro com os dados informados através do método verificarDuplicidade localizado na classe Repository, caso não exista chama o método guardar do repository.
ParceiroNegocioService.java (980 Bytes)

3º Repository
Dentro do repository é que faço toda interação com o Banco de Dados…
ParceiroNegocioRepository.java (5,0 KB)

4º No banco de dados o Hibernate criou automaticamente uma tabela chamada parceironegocio_tiporelacionamento… mas eu não criei ela no eclipse… acredito que seja por causa das anotações…

5º Resultado
Conforme mostra a imagem abaixo ele está conseguindo obter os checkbox informado… mas não grava no banco…

dando a seguinte mensagem:

Conseguiu compreender o que estou tentando fazer?

A
Solucao aceita

Pessoal consegui resolver o problema através do post [RESOLVIDO] Hibernate com lista de Enumerations

Em resumo precisei fazer 3 coisas…

1º Criar um converter para minha enum:
TipoRelacionamentoConverter.java (1,4 KB)

2º Informar o converter dentro do selectManyCheckbox
3º Informar um <f:attribute name=“collectionType” value=“java.util.ArrayList”/> dentro do selectManyCheckbox
Ficando da seguinte forma:

Criado 8 de junho de 2018
Ultima resposta 12 de jun. de 2018
Respostas 7
Participantes 2