Error while committing the transaction

UI Components for JSF
Post Reply
davidamaral
Posts: 6
Joined: 04 Jan 2013, 18:46

27 Jan 2013, 00:51

I've got the following error when updating.
26/01/2013 19:23:35 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
26/01/2013 19:23:35 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:politicoPRIME' did not find a matching property.
26/01/2013 19:23:35 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-6080"]
26/01/2013 19:23:35 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
26/01/2013 19:23:35 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 741 ms
26/01/2013 19:23:35 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
26/01/2013 19:23:35 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.33
26/01/2013 19:23:38 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Inicializando Mojarra 2.0.4 (FCS b09) para o contexto '/politico'
26/01/2013 19:23:38 com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes. Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.
26/01/2013 19:23:39 org.primefaces.webapp.PostConstructApplicationEventListener processEvent
INFO: Running on PrimeFaces 3.4.1
26/01/2013 19:23:39 com.sun.faces.config.ConfigureListener$WebConfigResourceMonitor$Monitor <init>
INFO: Monitoring jndi:/localhost/politico/WEB-INF/faces-config.xml for modifications
26/01/2013 19:23:39 org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1595)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1060)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:284)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1671)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1077)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:432)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:353)
at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:518)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5474)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
... 5 more
26/01/2013 19:23:39 org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1595)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1060)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:284)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1671)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1077)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:432)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:353)
at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:518)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5474)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
... 5 more
26/01/2013 19:23:39 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-6080"]
26/01/2013 19:23:39 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
26/01/2013 19:23:39 org.apache.catalina.startup.Catalina start
INFO: Server startup in 4103 ms
/politico/javax.faces.resource/layout/layout.css.xhtml
/politico/javax.faces.resource/layout/layout.js.xhtml
/politico/javax.faces.resource/layout/layout.css.xhtml
/politico/javax.faces.resource/layout/layout.js.xhtml
Hibernate:
select
user0_.id as id3_,
user0_.active as active3_,
user0_.dateCreate as dateCreate3_,
user0_.email as email3_,
user0_.fullName as fullName3_,
user0_.owner_id as owner11_3_,
user0_.password as password3_,
user0_.photo as photo3_,
user0_.role as role3_,
user0_.userGroup_id as userGroup12_3_,
user0_.username as username3_,
user0_.version as version3_
from
USERS user0_
where
user0_.username=?
and user0_.active=true
order by
user0_.fullName limit ?
Hibernate:
select
lead0_.id as id7_,
lead0_.active as active7_,
lead0_.affiliate as affiliate7_,
lead0_.birthday as birthday7_,
lead0_.currentPosition as currentP5_7_,
lead0_.lead as lead7_,
lead0_.name as name7_,
lead0_.nickname as nickname7_,
lead0_.owner_id as owner13_7_,
lead0_.politicalParty as politica9_7_,
lead0_.profession as profession7_,
lead0_.segment as segment7_,
lead0_.version as version7_
from
LEADS lead0_
order by
lead0_.name
Hibernate:
select
companyown0_.id as id11_3_,
companyown0_.active as active11_3_,
companyown0_.individualPerson_id as individu6_11_3_,
companyown0_.legalEntity_id as legalEnt7_11_3_,
companyown0_.owner_id as owner8_11_3_,
companyown0_.version as version11_3_,
companyown0_.code as code11_3_,
companyown0_.contractDate as contract5_11_3_,
individual1_.id as id1_0_,
individual1_.email as email1_0_,
individual1_.photo as photo1_0_,
individual1_.version as version1_0_,
individual1_.birthday as birthday1_0_,
individual1_.cpf as cpf1_0_,
individual1_.fullName as fullName1_0_,
individual1_.sex as sex1_0_,
legalentit2_.id as id0_1_,
legalentit2_.email as email0_1_,
legalentit2_.photo as photo0_1_,
legalentit2_.version as version0_1_,
legalentit2_.cnpj as cnpj0_1_,
legalentit2_.corporateName as corporat6_0_1_,
legalentit2_.fancyName as fancyName0_1_,
legalentit2_.openingDate as openingD8_0_1_,
legalentit2_.stateRegistration as stateReg9_0_1_,
companyown3_.id as id11_2_,
companyown3_.active as active11_2_,
companyown3_.individualPerson_id as individu6_11_2_,
companyown3_.legalEntity_id as legalEnt7_11_2_,
companyown3_.owner_id as owner8_11_2_,
companyown3_.version as version11_2_,
companyown3_.code as code11_2_,
companyown3_.contractDate as contract5_11_2_
from
COMPANYOWNERS companyown0_
left outer join
INDIVIDUALPERSONS individual1_
on companyown0_.individualPerson_id=individual1_.id
left outer join
LEGALENTITIES legalentit2_
on companyown0_.legalEntity_id=legalentit2_.id
left outer join
COMPANYOWNERS companyown3_
on companyown0_.owner_id=companyown3_.id
where
companyown0_.id=?
Hibernate:
select
addresses0_.LEADS_id as LEADS1_7_1_,
addresses0_.addresses_id as addresses2_1_,
address1_.id as id13_0_,
address1_.addressType as addressT2_13_0_,
address1_.city_id as city10_13_0_,
address1_.complement as complement13_0_,
address1_.landmark as landmark13_0_,
address1_.neighborhood as neighbor5_13_0_,
address1_.number as number13_0_,
address1_.postalCode as postalCode13_0_,
address1_.publicPark as publicPark13_0_,
address1_.version as version13_0_
from
LEADS_ADDRESSES addresses0_
inner join
ADDRESSES address1_
on addresses0_.addresses_id=address1_.id
where
addresses0_.LEADS_id=?
Hibernate:
select
city0_.id as id12_0_,
city0_.active as active12_0_,
city0_.capital as capital12_0_,
city0_.description as descript4_12_0_,
city0_.state_id as state6_12_0_,
city0_.version as version12_0_
from
CITIES city0_
where
city0_.id=?
Hibernate:
select
phones0_.LEADS_id as LEADS1_7_1_,
phones0_.phones_id as phones2_1_,
phone1_.id as id8_0_,
phone1_.contact as contact8_0_,
phone1_.ddd as ddd8_0_,
phone1_.extension as extension8_0_,
phone1_.number as number8_0_,
phone1_.phoneType as phoneType8_0_,
phone1_.version as version8_0_
from
LEADS_PHONES phones0_
inner join
PHONES phone1_
on phones0_.phones_id=phone1_.id
where
phones0_.LEADS_id=?
Hibernate:
select
socialnetw0_.LEADS_id as LEADS1_7_1_,
socialnetw0_.socialNetworks_id as socialNe2_1_,
socialnetw1_.id as id9_0_,
socialnetw1_.description as descript2_9_0_,
socialnetw1_.socialNetworkType as socialNe3_9_0_,
socialnetw1_.version as version9_0_
from
LEADS_SOCIAL_NETWORKS socialnetw0_
inner join
SOCIAL_NETWORKS socialnetw1_
on socialnetw0_.socialNetworks_id=socialnetw1_.id
where
socialnetw0_.LEADS_id=?
Hibernate:
select
politicals0_.LEADS_id as LEADS1_7_1_,
politicals0_.politicalSupports_id as politica2_1_,
politicals1_.id as id5_0_,
politicals1_.description as descript2_5_0_,
politicals1_.politicalOfficeType as politica3_5_0_,
politicals1_.politicalParty as politica4_5_0_,
politicals1_.version as version5_0_
from
LEADS_POLITICAL_SUPPORT politicals0_
inner join
POLITICAL_SUPPORT politicals1_
on politicals0_.politicalSupports_id=politicals1_.id
where
politicals0_.LEADS_id=?
Hibernate:
select
comments0_.LEADS_id as LEADS1_7_1_,
comments0_.comments_id as comments2_1_,
comment1_.id as id6_0_,
comment1_.comment as comment6_0_,
comment1_.user_id as user4_6_0_,
comment1_.version as version6_0_
from
LEADS_COMMENTS comments0_
inner join
COMMENTS comment1_
on comments0_.comments_id=comment1_.id
where
comments0_.LEADS_id=?
Hibernate:
select
companyown0_.id as id11_,
companyown0_.active as active11_,
companyown0_.individualPerson_id as individu6_11_,
companyown0_.legalEntity_id as legalEnt7_11_,
companyown0_.owner_id as owner8_11_,
companyown0_.version as version11_,
companyown0_.code as code11_,
companyown0_.contractDate as contract5_11_
from
COMPANYOWNERS companyown0_
where
companyown0_.id=?
order by
companyown0_.code
Hibernate:
select
individual0_.id as id1_0_,
individual0_.email as email1_0_,
individual0_.photo as photo1_0_,
individual0_.version as version1_0_,
individual0_.birthday as birthday1_0_,
individual0_.cpf as cpf1_0_,
individual0_.fullName as fullName1_0_,
individual0_.sex as sex1_0_
from
INDIVIDUALPERSONS individual0_
where
individual0_.id=?
Hibernate:
select
lead0_.id as id7_4_,
lead0_.active as active7_4_,
lead0_.affiliate as affiliate7_4_,
lead0_.birthday as birthday7_4_,
lead0_.currentPosition as currentP5_7_4_,
lead0_.lead as lead7_4_,
lead0_.name as name7_4_,
lead0_.nickname as nickname7_4_,
lead0_.owner_id as owner13_7_4_,
lead0_.politicalParty as politica9_7_4_,
lead0_.profession as profession7_4_,
lead0_.segment as segment7_4_,
lead0_.version as version7_4_,
companyown1_.id as id11_0_,
companyown1_.active as active11_0_,
companyown1_.individualPerson_id as individu6_11_0_,
companyown1_.legalEntity_id as legalEnt7_11_0_,
companyown1_.owner_id as owner8_11_0_,
companyown1_.version as version11_0_,
companyown1_.code as code11_0_,
companyown1_.contractDate as contract5_11_0_,
individual2_.id as id1_1_,
individual2_.email as email1_1_,
individual2_.photo as photo1_1_,
individual2_.version as version1_1_,
individual2_.birthday as birthday1_1_,
individual2_.cpf as cpf1_1_,
individual2_.fullName as fullName1_1_,
individual2_.sex as sex1_1_,
legalentit3_.id as id0_2_,
legalentit3_.email as email0_2_,
legalentit3_.photo as photo0_2_,
legalentit3_.version as version0_2_,
legalentit3_.cnpj as cnpj0_2_,
legalentit3_.corporateName as corporat6_0_2_,
legalentit3_.fancyName as fancyName0_2_,
legalentit3_.openingDate as openingD8_0_2_,
legalentit3_.stateRegistration as stateReg9_0_2_,
companyown4_.id as id11_3_,
companyown4_.active as active11_3_,
companyown4_.individualPerson_id as individu6_11_3_,
companyown4_.legalEntity_id as legalEnt7_11_3_,
companyown4_.owner_id as owner8_11_3_,
companyown4_.version as version11_3_,
companyown4_.code as code11_3_,
companyown4_.contractDate as contract5_11_3_
from
LEADS lead0_
left outer join
COMPANYOWNERS companyown1_
on lead0_.owner_id=companyown1_.id
left outer join
INDIVIDUALPERSONS individual2_
on companyown1_.individualPerson_id=individual2_.id
left outer join
LEGALENTITIES legalentit3_
on companyown1_.legalEntity_id=legalentit3_.id
left outer join
COMPANYOWNERS companyown4_
on companyown1_.owner_id=companyown4_.id
where
lead0_.id=?
Hibernate:
select
address0_.id as id13_0_,
address0_.addressType as addressT2_13_0_,
address0_.city_id as city10_13_0_,
address0_.complement as complement13_0_,
address0_.landmark as landmark13_0_,
address0_.neighborhood as neighbor5_13_0_,
address0_.number as number13_0_,
address0_.postalCode as postalCode13_0_,
address0_.publicPark as publicPark13_0_,
address0_.version as version13_0_
from
ADDRESSES address0_
where
address0_.id=?
Hibernate:
select
comment0_.id as id6_0_,
comment0_.comment as comment6_0_,
comment0_.user_id as user4_6_0_,
comment0_.version as version6_0_
from
COMMENTS comment0_
where
comment0_.id=?
Hibernate:
select
comment0_.id as id6_0_,
comment0_.comment as comment6_0_,
comment0_.user_id as user4_6_0_,
comment0_.version as version6_0_
from
COMMENTS comment0_
where
comment0_.id=?
Hibernate:
select
phone0_.id as id8_0_,
phone0_.contact as contact8_0_,
phone0_.ddd as ddd8_0_,
phone0_.extension as extension8_0_,
phone0_.number as number8_0_,
phone0_.phoneType as phoneType8_0_,
phone0_.version as version8_0_
from
PHONES phone0_
where
phone0_.id=?
Hibernate:
select
phone0_.id as id8_0_,
phone0_.contact as contact8_0_,
phone0_.ddd as ddd8_0_,
phone0_.extension as extension8_0_,
phone0_.number as number8_0_,
phone0_.phoneType as phoneType8_0_,
phone0_.version as version8_0_
from
PHONES phone0_
where
phone0_.id=?
Hibernate:
select
politicals0_.id as id5_0_,
politicals0_.description as descript2_5_0_,
politicals0_.politicalOfficeType as politica3_5_0_,
politicals0_.politicalParty as politica4_5_0_,
politicals0_.version as version5_0_
from
POLITICAL_SUPPORT politicals0_
where
politicals0_.id=?
Hibernate:
select
socialnetw0_.id as id9_0_,
socialnetw0_.description as descript2_9_0_,
socialnetw0_.socialNetworkType as socialNe3_9_0_,
socialnetw0_.version as version9_0_
from
SOCIAL_NETWORKS socialnetw0_
where
socialnetw0_.id=?
Hibernate:
select
socialnetw0_.id as id9_0_,
socialnetw0_.description as descript2_9_0_,
socialnetw0_.socialNetworkType as socialNe3_9_0_,
socialnetw0_.version as version9_0_
from
SOCIAL_NETWORKS socialnetw0_
where
socialnetw0_.id=?
Hibernate:
select
socialnetw0_.id as id9_0_,
socialnetw0_.description as descript2_9_0_,
socialnetw0_.socialNetworkType as socialNe3_9_0_,
socialnetw0_.version as version9_0_
from
SOCIAL_NETWORKS socialnetw0_
where
socialnetw0_.id=?
javax.persistence.RollbackException: Error while committing the transaction
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:93)
at br.com.blacksystems.politico.dao.GenericDAO.commit(GenericDAO.java:39)
at br.com.blacksystems.politico.dao.LeadDAO.commit(LeadDAO.java:1)
at br.com.blacksystems.politico.dao.GenericDAO.commitAndCloseTransaction(GenericDAO.java:51)
at br.com.blacksystems.politico.dao.LeadDAO.commitAndCloseTransaction(LeadDAO.java:1)
at br.com.blacksystems.politico.facede.LeadFacede.update(LeadFacede.java:44)
at br.com.blacksystems.politico.mb.LeadMB.update(LeadMB.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
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:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.blacksystems.politico.filter.DefaultUserPagesFilter.doFilter(DefaultUserPagesFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.blacksystems.politico.filter.LoginCheckFilter.doFilter(LoginCheckFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:81)
... 47 more
Caused by: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
at org.hibernate.collection.AbstractPersistentCollection.setCurrentSession(AbstractPersistentCollection.java:435)
at org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:66)
at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:122)
at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:120)
at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:77)
at org.hibernate.event.def.DefaultFlushEntityEventListener.wrapCollections(DefaultFlushEntityEventListener.java:218)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:152)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76)
... 47 more
Follow my classes to low

LeadMB

Code: Select all

package br.com.blacksystems.politico.mb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.persistence.PostLoad;
import javax.servlet.http.HttpSession;

import br.com.blacksystems.politico.entities.Address;
import br.com.blacksystems.politico.entities.Comment;
import br.com.blacksystems.politico.entities.CompanyOwner;
import br.com.blacksystems.politico.entities.Lead;
import br.com.blacksystems.politico.entities.Phone;
import br.com.blacksystems.politico.entities.PoliticalSupport;
import br.com.blacksystems.politico.entities.SocialNetwork;
import br.com.blacksystems.politico.entities.User;
import br.com.blacksystems.politico.facede.LeadFacede;
import br.com.blacksystems.politico.utils.Messages;
import br.com.blacksystems.politico.validator.LeadValidator;

@ViewScoped
@ManagedBean
public class LeadMB extends AbstractMB implements Serializable {
	
	private static final long serialVersionUID = -5370001333316520200L;
	
	private HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);  
	private User userlogin = (User) session.getAttribute("user");
	
	private Lead lead;
	
	private Lead lead_view;
	private Lead lead_delete;
	private Lead lead_update;
	
	private Address address;
	private Phone phone;
	private SocialNetwork socialNetwork;
	private PoliticalSupport politicalSupport;
	private Comment comment;
	private CompanyOwner owner;

	private List<Lead> leads;
	private List<Address> addresses;
	private List<Phone> phones;
	
	private LeadFacede leadFacede;
	private LeadValidator leadValidator = new LeadValidator();
	
	@PostLoad
	public void init() {
		Map<String, Object> parameters = new HashMap<String, Object>();
		if(userlogin.getOwner() != null) {
			parameters.put("owner", userlogin.getOwner().getId());
			leads = getLeadFacede().find(Lead.FIND_ALL_OWNER, parameters);
		}else {
			leads = getLeadFacede().find(Lead.FIND_ALL, parameters);
		}
	}
	
	public void create() {
		try {			
			String isValidPoliticalParty = leadValidator.isValidPolitcalParty(lead);
			
			if(isValidPoliticalParty !=null ){
				if(isValidPoliticalParty != null)
					displayErrorMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.LEAD_POLITICAL_PARTY_REQUIRED));
				
			}else {
				lead.setActive(true);
				lead.setAddresses(addresses);
				lead.setPhones(phones);
				
				if(userlogin.getOwner() != null) {
					lead.setOwner(userlogin.getOwner());
				}
				
				getLeadFacede().create(lead);
				
				displayInfoMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.CREATE_SUCESSO));
				
				resetLead();
				init();
			}
		} catch (Exception e) {
			displayErrorMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.CREATE_INSUCESSO));
			
			e.printStackTrace();
		}
	}
	
	public void update() {
		try {			
			String isValidPoliticalParty = leadValidator.isValidPolitcalParty(lead_update);
			
			if(isValidPoliticalParty !=null ){
				if(isValidPoliticalParty != null)
					displayErrorMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.LEAD_POLITICAL_PARTY_REQUIRED));
				
			}else {
				if(userlogin.getOwner() != null) {
					lead_update.setOwner(userlogin.getOwner());
				}
				
				getLeadFacede().update(lead_update);
				
				displayInfoMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.UPDATE_SUCESSO));
				
				resetLead();
				init();
			}
		} catch (Exception e) {
			displayErrorMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.UPDATE_INSUCESSO));
			
			e.printStackTrace();
		}
	}
	
	public void delete() {
		try {
			getLeadFacede().delete(lead_delete);

			displayInfoMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.DELETE_SUCESSO));
			
			resetLead();
			init();
		} catch (Exception e) {
			displayErrorMessageToUser(Messages.getMessage("Pessoa / Liderança", Messages.DELETE_INSUCESSO));
			
			e.printStackTrace();
		}
	}
	
	private void loadLeads() {
		Map<String, Object> parameters = new HashMap<String, Object>();
		if(userlogin.getOwner() != null) {
			parameters.put("owner", userlogin.getOwner().getId());
			leads = getLeadFacede().find(Lead.FIND_ALL_OWNER, parameters);
		}else {
			leads = getLeadFacede().find(Lead.FIND_ALL, parameters);
		}
	}
	
	public void addAddress() {
		if (address != null) {
			if(addresses == null) {
				addresses = new ArrayList<Address>();
			}
			addresses.add(address);
			resetAddress();
		}
	}
	
	public void addAddressUpdate() {
		if (address != null) {
			lead_update.getAddresses().add(address);
			resetAddress();
		}
	}
	
	public void removeAddress() {
		if (address != null) {
			addresses.remove(address);
			resetAddress();
		}
	}
	
	public void removeAddressUpdate() {
		if (address != null) {
			lead_update.getAddresses().remove(address);
			resetAddress();
		}
	}
	
	public void resetAddress() {
		address = new Address();
	}
	
	public void addPhone() {
		if (phone != null) {
			if(phones == null) {
				phones = new ArrayList<Phone>();
			}
			phones.add(phone);
			resetPhone();
		}
	}
	
	public void addPhoneUpdate() {
		if (phone != null) {
			lead_update.getPhones().add(phone);
			resetPhone();
		}
	}
	
	public void removePhone() {
		if (phone != null) {
			phones.remove(phone);
			resetPhone();
		}
	}
	
	public void removePhoneUpdate() {
		if (phone != null) {
			lead_update.getPhones().remove(phone);
			resetPhone();
		}
	}
	
	public void resetPhone() {
		phone = new Phone();
	}
	
	public void addSocialNetwork() {
		if (socialNetwork != null) {
			if(lead.getSocialNetworks() == null)
				lead.setSocialNetworks(new ArrayList<SocialNetwork>());
			lead.getSocialNetworks().add(socialNetwork);
			resetSocialNetwork();
		}
	}
	
	public void addSocialNetworkUpdate() {
		if (socialNetwork != null) {
			if(lead.getSocialNetworks() == null)
				lead.setSocialNetworks(new ArrayList<SocialNetwork>());
			lead_update.getSocialNetworks().add(socialNetwork);
			resetSocialNetwork();
		}
	}
	
	public void removeSocialNetwork() {
		if (socialNetwork != null) {
			lead.getSocialNetworks().remove(socialNetwork);
			resetSocialNetwork();
		}
	}
	
	public void removeSocialNetworkUpdate() {
		if (socialNetwork != null) {
			lead_update.getSocialNetworks().remove(socialNetwork);
			resetSocialNetwork();
		}
	}
	
	public void resetSocialNetwork() {
		socialNetwork = new SocialNetwork();
	}

	
	public void addPoliticalSupport() {
		if (politicalSupport != null) {
			if(lead.getPoliticalSupports() == null)
				lead.setPoliticalSupports(new ArrayList<PoliticalSupport>());
			lead.getPoliticalSupports().add(politicalSupport);
			resetPoliticalSupport();
		}
	}
	
	public void addPoliticalSupportUpdate() {
		if (politicalSupport != null) {
			if(lead.getPoliticalSupports() == null)
				lead.setPoliticalSupports(new ArrayList<PoliticalSupport>());
			lead_update.getPoliticalSupports().add(politicalSupport);
			resetPoliticalSupport();
		}
	}
	
	public void removePoliticalSupport() {
		if (politicalSupport != null) {
			lead.getPoliticalSupports().remove(politicalSupport);
			resetPoliticalSupport();
		}
	}
	
	public void removePoliticalSupportUpdate() {
		if (politicalSupport != null) {
			lead_update.getPoliticalSupports().remove(politicalSupport);
			resetPoliticalSupport();
		}
	}
	
	public void addComment() {
		if (comment != null) {
			if(lead.getComments() == null)
				lead.setComments(new ArrayList<Comment>());
			comment.setUser(userlogin);
			lead.getComments().add(comment);
			resetComment();
		}
	}
	
	public void addCommentUpdate() {
		if (comment != null) {
			if(lead.getComments() == null)
				lead.setComments(new ArrayList<Comment>());
			comment.setUser(userlogin);
			lead_update.getComments().add(comment);
			resetComment();
		}
	}
	
	public void removeComment() {
		if (comment != null) {
			lead.getComments().remove(comment);
			resetComment();
		}
	}
	
	public void removeCommentUpdate() {
		if (comment != null) {
			lead_update.getComments().remove(comment);
			resetComment();
		}
	}
	
	public void resetComment() {
		comment = new Comment();
	}
	
	public void resetPoliticalSupport() {
		politicalSupport = new PoliticalSupport();
	}
	
	public void resetLead() {
		lead = new Lead();
		lead_view = new Lead();
		lead_delete = new Lead();
		
		owner = new CompanyOwner();
		
		addresses = new ArrayList<Address>();
		phones = new ArrayList<Phone>();
	}
	
	public LeadFacede getLeadFacede() {
		if (leadFacede == null) {
			leadFacede = new LeadFacede();
		}
		return leadFacede;
	}

	public Lead getLead() {
		if(lead == null)
			lead = new Lead();
		return lead;
	}

	public void setLead(Lead lead) {
		this.lead = lead;
	}

	public Lead getLead_view() {
		if(lead_view == null)
			lead_view = new Lead();
		return lead_view;
	}

	public void setLead_view(Lead lead_view) {
		this.lead_view = lead_view;
	}

	public Lead getLead_delete() {
		if(lead_delete == null)
			lead_delete = new Lead();
		return lead_delete;
	}

	public void setLead_delete(Lead lead_delete) {
		this.lead_delete = lead_delete;
	}

	public Lead getLead_update() {
		if(lead_update == null)
			lead_update = new Lead();
		return lead_update;
	}

	public void setLead_update(Lead lead_update) {
		this.lead_update = lead_update;
	}

	public CompanyOwner getOwner() {
		return owner;
	}

	public void setOwner(CompanyOwner owner) {
		this.owner = owner;
	}

	public Address getAddress() {
		if(address == null)
			address = new Address();
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}

	public Phone getPhone() {
		if(phone == null)
			phone = new Phone();
		return phone;
	}

	public void setPhone(Phone phone) {
		this.phone = phone;
	}

	public SocialNetwork getSocialNetwork() {
		if(socialNetwork == null)
			socialNetwork = new SocialNetwork();
		return socialNetwork;
	}

	public void setSocialNetwork(SocialNetwork socialNetwork) {
		this.socialNetwork = socialNetwork;
	}

	public PoliticalSupport getPoliticalSupport() {
		if(politicalSupport == null)
			politicalSupport = new PoliticalSupport();
		return politicalSupport;
	}

	public void setPoliticalSupport(PoliticalSupport politicalSupport) {
		this.politicalSupport = politicalSupport;
	}

	public Comment getComment() {
		if(comment == null)
			comment = new Comment();
		return comment;
	}

	public void setComment(Comment comment) {
		this.comment = comment;
	}

	public List<Lead> getLeads() {
		if(leads == null)
			loadLeads();
		return leads;
	}

	public void setLeads(List<Lead> leads) {
		this.leads = leads;
	}

	public List<Address> getAddresses() {
		if(addresses == null)
			addresses = new ArrayList<Address>();
		return addresses;
	}

	public void setAddresses(List<Address> addresses) {
		this.addresses = addresses;
	}

	public List<Phone> getPhones() {
		if(phones == null)
			phone = new Phone();
		return phones;
	}

	public void setPhones(List<Phone> phones) {
		this.phones = phones;
	}
}

LeadFacede

Code: Select all

package br.com.blacksystems.politico.facede;

import java.util.List;
import java.util.Map;

import br.com.blacksystems.politico.dao.LeadDAO;
import br.com.blacksystems.politico.entities.Lead;

public class LeadFacede {
	
	private LeadDAO leadDAO = new LeadDAO();
	
	public void create(Lead entity) {
		leadDAO.beginTransaction();
		
		leadDAO.save(entity);
		
		leadDAO.commitAndCloseTransaction();
	}
	
	public void update(Lead entity) {
		leadDAO.beginTransaction();
		
		Lead lead = leadDAO.find(entity.getId());
		
		lead.setActive(entity.isActive());
		lead.setAddresses(entity.getAddresses());
		lead.setAffiliate(entity.isAffiliate());
		lead.setBirthday(entity.getBirthday());
		lead.setComments(entity.getComments());
		lead.setCurrentPosition(entity.getCurrentPosition());
		lead.setLead(entity.isLead());
		lead.setName(entity.getName());
		lead.setNickname(entity.getNickname());
		lead.setOwner(entity.getOwner());
		lead.setPhones(entity.getPhones());
		lead.setPoliticalParty(entity.getPoliticalParty());
		lead.setPoliticalSupports(entity.getPoliticalSupports());
		lead.setSegment(entity.getSegment());
		lead.setSocialNetworks(entity.getSocialNetworks());
		
		leadDAO.update(lead);
		
		leadDAO.commitAndCloseTransaction();
	}
	
	public void delete(Lead entity){
		leadDAO.beginTransaction();
		
		Lead lead = leadDAO.findReferenceOnly(entity.getId());
		leadDAO.delete(lead);
		
		leadDAO.commitAndCloseTransaction();
		
	}
	
	public List<Lead> listAll() {
		leadDAO.beginTransaction();
		List<Lead> leads = leadDAO.findAll();
		leadDAO.closeTransaction();
		
		return leads;
	}
	
	public List<Lead> find(String namedQuery, Map<String, Object> parameters) {
		leadDAO.beginTransaction();
		List<Lead> leads = leadDAO.findAll(namedQuery, parameters);
		leadDAO.closeTransaction();
		
		return leads;
	}
	
}
GenericDAO

Code: Select all

package br.com.blacksystems.politico.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Order;

abstract class GenericDAO<T> implements Serializable {
	private static final long serialVersionUID = 1L;

	private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("politicoPU");
	private EntityManager em;

	private Class<T> entityClass;
	
	public boolean isOpen() {
		return em.isOpen();
	}

	public void beginTransaction() {
		if(em == null || !em.isOpen()) {
			em = emf.createEntityManager();
			em.getTransaction().begin();
		}else {
			em.close();
			em.getTransaction().begin();
		}
	}

	public void commit() {
		em.getTransaction().commit();
	}

	public void rollback() {
		em.getTransaction().rollback();
	}

	public void closeTransaction() {
		em.close();
	}

	public void commitAndCloseTransaction() {
		commit();
		closeTransaction();
	}

	public void flush() {
		em.flush();
	}

	public void joinTransaction() {
		em = emf.createEntityManager();
		
		em.joinTransaction();
	}

	public GenericDAO(Class<T> entityClass) {
		this.entityClass = entityClass;
	}

	public void save(T entity) {
		em.persist(entity);
	}

	public void delete(T entity) {
		T entityToBeRemoved = em.merge(entity);

		em.remove(entityToBeRemoved);
	}

	public T update(T entity) {
		return em.merge(entity);
	}

	public T find(int entityID) {
		return em.find(entityClass, entityID);
	}

	public T findReferenceOnly(int entityID) {
		return em.getReference(entityClass, entityID);
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<T> findAll() {
		CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
		cq.select(cq.from(entityClass));
		
		return em.createQuery(cq).getResultList();
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<T> findAll(Order order) {
		CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
		cq.select(cq.from(entityClass));
		cq.orderBy(order);
		return em.createQuery(cq).getResultList();
	}

	@SuppressWarnings("unchecked")
	public List<T> findAll(String namedQuery, Map<String, Object> parameters) {
		List<T> result = null;

		try {
			Query query = em.createNamedQuery(namedQuery);

			if (parameters != null && !parameters.isEmpty()) {
				populateQueryParameters(query, parameters);
			}

			result = (List<T>) query.getResultList();

		} catch (NoResultException e) {
			System.out.println("No result found for named query: " + namedQuery);
		} catch (Exception e) {
			System.out.println("Error while running query: " + e.getMessage());
			e.printStackTrace();
		}

		return result;
	}
	
	@SuppressWarnings("unchecked")
	protected T findOneResult(String namedQuery, Map<String, Object> parameters) {
		T result = null;

		try {
			Query query = em.createNamedQuery(namedQuery);

			if (parameters != null && !parameters.isEmpty()) {
				populateQueryParameters(query, parameters);
			}

			result = (T) query.getSingleResult();

		} catch (NoResultException e) {
			System.out.println("No result found for named query: " + namedQuery);
		} catch (Exception e) {
			System.out.println("Error while running query: " + e.getMessage());
			e.printStackTrace();
		}

		return result;
	}

	private void populateQueryParameters(Query query, Map<String, Object> parameters) {
		for (Entry<String, Object> entry : parameters.entrySet()) {
			query.setParameter(entry.getKey(), entry.getValue());
		}
	}
}

davidamaral
Posts: 6
Joined: 04 Jan 2013, 18:46

27 Jan 2013, 01:01

LeadUpdate.xhtml

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"  
      xmlns:p="http://primefaces.org/ui"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions">

<h:body>
<p:dialog widgetVar="leadUpdateDialogWidget" id="leadUpdateDialogId" height="500" width="750" modal="true"
		resizable="false" appendToBody="true" showEffect="puff" hideEffect="puff" draggable="false" header="Atualizar Pessoa / Liderança">
	<h:form id="leadUpdateForm" prependId="false">
		<p:fieldset legend="Dados Pessoais">
			<h:inputHidden value="#{leadMB.lead_update.id}"/>
			<h:inputHidden value="#{leadMB.lead_update.version}"/>
		
			<h:outputText value="Apelido: " styleClass="labelField"/>
			<h:inputText label="Apelido" value="#{leadMB.lead_update.nickname}" styleClass="inputField" maxlength="100" size="36">
				<f:validateLength maximum="100"/>
			</h:inputText>
			<h:outputText value="Data de Nascimento: " styleClass="labelField" style="margin-left:10px"/>
			<p:calendar locale="pt_BR" label="Data de Nascimento" value="#{leadMB.lead_update.birthday}" 
						showOn="button" styleClass="inputField" size="10" effect="fade" pattern="dd/MM/yyyy"/>
			<br/><br/>
			
			<h:outputText value="*Nome completo: " styleClass="labelField"/>
			<h:inputText label="Nome Completo" value="#{leadMB.lead_update.name}" required="true" styleClass="inputField" maxlength="150" size="65">
				<f:validateLength minimum="5" maximum="150"/>
			</h:inputText>
			<br/><br/>
			
			<h:outputText value="*Liderança: " styleClass="labelField"/>
			<p:selectBooleanCheckbox value="#{leadMB.lead_update.lead}"/> 
			
			<h:outputText value="*Segmento: " styleClass="labelField" style="margin-left:10px;"/>
			<p:selectOneMenu value="#{leadMB.lead_update.segment}" label="Segmento" styleClass="inputField" required="true">
				<f:selectItem itemLabel="Selecione"/>
				<f:selectItem itemLabel="Comunicação" itemValue="COMMUNICATION"/>
				<f:selectItem itemLabel="Educação" itemValue="EDUCATION"/>
				<f:selectItem itemLabel="Empresarial" itemValue="BUSINESS"/>
				<f:selectItem itemLabel="Governo" itemValue="GOVERNMENT"/>
				<f:selectItem itemLabel="Movimento Social" itemValue="SOCIAL_MOVEMENT"/>
				<f:selectItem itemLabel="ONG" itemValue="ONG"/>
				<f:selectItem itemLabel="Politico" itemValue="POLITICS"/>
				<f:selectItem itemLabel="PPD" itemValue="PPD"/>
				<f:selectItem itemLabel="Religioso" itemValue="RELIGIOUS"/>
				<f:selectItem itemLabel="Outros" itemValue="OTHER"/>
			</p:selectOneMenu>
			
			<h:outputText value="*Filiado " styleClass="labelField" style="margin-left:10px;"/>
			<p:selectBooleanCheckbox value="#{leadMB.lead_update.affiliate}"/> 
		
			<h:outputText value="Partido Politico: " styleClass="labelField" style="margin-left:10px;"/>
			<p:selectOneMenu value="#{leadMB.lead_update.politicalParty}" label="Partido Politico" styleClass="inputField">
				<f:selectItem itemLabel="Selecione"/>
				<f:selectItem itemLabel="PMDB" itemValue="PMDB"/>
				<f:selectItem itemLabel="PTB" itemValue="PTB"/>
				<f:selectItem itemLabel="PDT" itemValue="PDT"/>
				<f:selectItem itemLabel="DEM" itemValue="DEM"/>
				<f:selectItem itemLabel="PCdoB" itemValue="PCdoB"/>
				<f:selectItem itemLabel="PSB" itemValue="PSB"/>
				<f:selectItem itemLabel="PSDB" itemValue="PSDB"/>
				<f:selectItem itemLabel="PTC" itemValue="PTC"/>
				<f:selectItem itemLabel="PSC" itemValue="PSC"/>
				<f:selectItem itemLabel="PMN" itemValue="PMN"/>
				<f:selectItem itemLabel="PRP" itemValue="PRP"/>
				<f:selectItem itemLabel="PPS" itemValue="PPS"/>
				<f:selectItem itemLabel="PV" itemValue="PV"/>
				<f:selectItem itemLabel="PRdoB" itemValue="PRdoB"/>
				<f:selectItem itemLabel="PRTB" itemValue="PRTB"/>
				<f:selectItem itemLabel="PP" itemValue="PP"/>
				<f:selectItem itemLabel="PT" itemValue="PT"/>
				<f:selectItem itemLabel="PSTU" itemValue="PSTU"/>
				<f:selectItem itemLabel="PCB" itemValue="PCB"/>
				<f:selectItem itemLabel="PHS" itemValue="PHS"/>
				<f:selectItem itemLabel="PSDC" itemValue="PSDC"/>
				<f:selectItem itemLabel="PCO" itemValue="PCO"/>
				<f:selectItem itemLabel="PTN" itemValue="PTN"/>
				<f:selectItem itemLabel="PSL" itemValue="PSL"/>
				<f:selectItem itemLabel="PRB" itemValue="PRB"/>
				<f:selectItem itemLabel="PSOL" itemValue="PSOL"/>
				<f:selectItem itemLabel="PR" itemValue="PR"/>
				<f:selectItem itemLabel="PSD" itemValue="PSD"/>
				<f:selectItem itemLabel="PL" itemValue="PL"/>
			</p:selectOneMenu>
			
			<br/><br/>
			<h:outputText value="Profissão: " styleClass="labelField"/>
			<h:inputText label="Profissão" value="#{leadMB.lead_update.profession}" styleClass="inputField" maxlength="200" size="70">
				<f:validateLength maximum="200"/>
			</h:inputText>
			
			<br/><br/>
			<h:outputText value="Cargo Atual: " styleClass="labelField"/>
			<h:inputText label="cargo Atual" value="#{leadMB.lead_update.currentPosition}" styleClass="inputField" maxlength="200" size="67">
				<f:validateLength maximum="200"/>
			</h:inputText>
			
			<p:spacer rendered="#{userMB.hasOwner}"><br/><br/></p:spacer>
			<h:outputText value="*Proprietário: " styleClass="labelField" rendered="#{userMB.hasOwner}"/>
			<p:autoComplete minQueryLength="1" effect="fade" value="#{leadMB.lead_update.owner}" rendered="#{userMB.hasOwner}"
							completeMethod="#{companyOwnerMB.autocomplete}"
							converter="companyOwnerConverter" required="#{!userMB.hasOwner}"
							var="owner" 
							itemLabel="#{(owner.individualPerson != null || owner.legalEntity != null) ? '[' : ''}#{owner.code}#{(owner.individualPerson != null || owner.legalEntity != null) ? '] ' : ''}#{(owner.individualPerson != null) ? owner.individualPerson.fullName : ''}#{(owner.legalEntity != null) ? owner.legalEntity.corporateName : ''}" 
							itemValue="#{owner}" queryDelay="5" forceSelection="true" styleClass="inputField" size="65" label="Proprietário" immediate="true"/>
			<br/><br/>
			<h:outputText value="Ativo: " styleClass="labelField"/>
			<p:selectBooleanCheckbox value="#{leadMB.lead_update.active}"/> 
			<br/><br/>
			<p:fieldset legend="Endereço(s)">
				<div align="right" style="margin-bottom:5px">
					<p:commandLink onclick="panelAddressLeadUpdateWidget.show()">
		         	   	<p:graphicImage title="#{bundle.add}" library="images" name="add.png" />  
					</p:commandLink>
				</div>
				<p:dataTable id="tableAddressLeadUpdate" value="#{leadMB.lead_update.addresses}" emptyMessage="#{bundle.noRecords}" var="myAddress" widgetVar="tableAddressLeadUpdate">
						
					<p:column exportable="false">
						<f:facet name="header">
							<h:outputText value="Opções" />
						</f:facet>
						<p:commandButton title="#{bundle.delete}" icon="ui-icon-trash" action="#{leadMB.removeAddressUpdate()}" 
									update="tableAddressLeadUpdate">
							<f:setPropertyActionListener target="#{leadMB.address}" value="#{myAddress}" />
						</p:commandButton>
					</p:column>
					
				    <p:column>
				        <f:facet name="header">
				            <h:outputLabel value="Tipo Endereço" />
				        </f:facet>
				        <h:outputLabel value="#{myAddress.addressType.toString()}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Logradouro" />
				         </f:facet>
				         <h:outputLabel value="#{myAddress.publicPark}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Número"/>
				         </f:facet>
				         <h:outputLabel value="#{myAddress.number}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Bairro"/>
				         </f:facet>
				         <h:outputLabel value="#{myAddress.neighborhood}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="CEP"/>
				         </f:facet>
				         <h:outputLabel value="#{myAddress.postalCode}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Cidade"/>
				         </f:facet>
				         <h:outputLabel value="#{myAddress.city.description}"/>
				     </p:column>
				     
					<f:facet name="footer">  
			            Total de Endereços #{fn:length(leadMB.lead_update.addresses)}.  
			        </f:facet>
				</p:dataTable>
			</p:fieldset>
			<br/>
			<p:fieldset legend="Telefones">
				<div align="right" style="margin-bottom:5px">
					<p:commandLink onclick="panelPhoneLeadUpdateWidget.show()">
		         	   	<p:graphicImage title="#{bundle.add}" library="images" name="add.png" />  
					</p:commandLink>
				</div>
				<p:dataTable id="tablePhoneLeadUpdate" value="#{leadMB.lead_update.phones}" emptyMessage="#{bundle.noRecords}" var="myPhone" widgetVar="tablePhoneLeadUpdate">
				
					<p:column exportable="false">
						<f:facet name="header">
							<h:outputText value="Opções" />
						</f:facet>
						<p:commandButton title="#{bundle.delete}" icon="ui-icon-trash" action="#{leadMB.removePhoneUpdate()}" 
									update="tablePhoneLeadUpdate">
							<f:setPropertyActionListener target="#{leadMB.phone}" value="#{myPhone}" />
						</p:commandButton>
					</p:column>
				
				    <p:column>
				        <f:facet name="header">
				            <h:outputLabel value="Tipo Telefone" />
				        </f:facet>
				        <h:outputLabel value="#{myPhone.phoneType.toString()}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="DDD" />
				         </f:facet>
				         <h:outputLabel value="#{myPhone.ddd}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Número"/>
				         </f:facet>
				         <h:outputLabel value="#{myPhone.number}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Ramal"/>
				         </f:facet>
				         <h:outputLabel value="#{myPhone.extension}"/>
				     </p:column>
				
				     <p:column>
				         <f:facet name="header">
				             <h:outputLabel value="Contato"/>
				         </f:facet>
				         <h:outputLabel value="#{myPhone.contact}"/>
				     </p:column>
				     
					<f:facet name="footer">  
			            Total de Telefones #{fn:length(leadMB.lead_update.phones)}.  
			        </f:facet>
				</p:dataTable>
			</p:fieldset>
		</p:fieldset>
		<br/>
		<p:fieldset legend="Redes Sociais">
			<div align="right" style="margin-bottom:5px">
				<p:commandLink onclick="panelSocialNetworkLeadUpdateWidget.show()">
	         	   	<p:graphicImage title="#{bundle.add}" library="images" name="add.png" />  
				</p:commandLink>
			</div>
			<p:dataTable id="tableSocialNetworkLeadUpdate" value="#{leadMB.lead_update.socialNetworks}" emptyMessage="#{bundle.noRecords}" var="mySocialNetwork" widgetVar="tableSocialNetworkLeadUpdate">
			
				<p:column exportable="false">
					<f:facet name="header">
						<h:outputText value="Opções" />
					</f:facet>
					<p:commandButton title="#{bundle.delete}" icon="ui-icon-trash" action="#{leadMB.removeSocialNetworkUpdate()}" 
								update="tableSocialNetworkLeadUpdate">
						<f:setPropertyActionListener target="#{leadMB.socialNetwork}" value="#{mySocialNetwork}" />
					</p:commandButton>
				</p:column>
			
			    <p:column>
			        <f:facet name="header">
			            <h:outputLabel value="Tipo" />
			        </f:facet>
			        <h:outputLabel value="#{mySocialNetwork.socialNetworkType.toString()}"/>
			     </p:column>
			
			     <p:column>
			         <f:facet name="header">
			             <h:outputLabel value="Descrição" />
			         </f:facet>
			         <h:outputLabel value="#{mySocialNetwork.description}"/>
			     </p:column>
			
				<f:facet name="footer">  
		            Total de Redes Sociais #{fn:length(leadMB.lead_view.socialNetworks)}.  
		        </f:facet>
			</p:dataTable>
		</p:fieldset>
		<br/>
		<p:fieldset legend="Apoio Politico">
			<div align="right" style="margin-bottom:5px">
				<p:commandLink onclick="panelPoliticalSupportLeadUpdateWidget.show()">
	         	   	<p:graphicImage title="#{bundle.add}" library="images" name="add.png" />  
				</p:commandLink>
			</div>
			<p:dataTable id="tablePoliticalSupportLeadUpdate" value="#{leadMB.lead_update.politicalSupports}" emptyMessage="#{bundle.noRecords}" var="myPoliticalSupport" widgetVar="tablePoliticalSupportLeadUpdate">
			
				<p:column exportable="false">
					<f:facet name="header">
						<h:outputText value="Opções" />
					</f:facet>
					<p:commandButton title="#{bundle.delete}" icon="ui-icon-trash" action="#{leadMB.removePoliticalSupportUpdate()}" 
								update="tablePoliticalSupportLeadUpdate">
						<f:setPropertyActionListener target="#{leadMB.politicalSupport}" value="#{myPoliticalSupport}" />
					</p:commandButton>
				</p:column>
			
			    <p:column>
			        <f:facet name="header">
			            <h:outputLabel value="Cargo" />
			        </f:facet>
			        <h:outputLabel value="#{myPoliticalSupport.politicalOfficeType.toString()}"/>
			     </p:column>
			
			     <p:column>
			         <f:facet name="header">
			             <h:outputLabel value="Nome" />
			         </f:facet>
			         <h:outputLabel value="#{myPoliticalSupport.description}"/>
			     </p:column>
			
			    <p:column>
			        <f:facet name="header">
			            <h:outputLabel value="Partido" />
			        </f:facet>
			        <h:outputLabel value="#{myPoliticalSupport.politicalParty.toString()}"/>
			     </p:column>
			
				<f:facet name="footer">  
		            Total de Apoios Politico #{fn:length(leadMB.lead_view.politicalSupports)}.  
		        </f:facet>
			</p:dataTable>
		</p:fieldset>
		<br/>
		<p:fieldset legend="Comentários">
		<div align="right" style="margin-bottom:5px">
			<p:commandLink onclick="panelCommentLeadUpdateWidget.show()">
         	   	<p:graphicImage title="#{bundle.add}" library="images" name="add.png" />  
			</p:commandLink>
		</div>
		<p:dataTable id="tableCommentLeadUpdate" value="#{leadMB.lead_update.comments}" emptyMessage="#{bundle.noRecords}" var="myComment" widgetVar="tableCommentLeadUpdate">
		
			<p:column exportable="false">
				<f:facet name="header">
					<h:outputText value="Opções" />
				</f:facet>
				<p:commandButton title="#{bundle.delete}" icon="ui-icon-trash" action="#{leadMB.removeCommentUpdate()}" 
							update="tableCommentLeadUpdate">
					<f:setPropertyActionListener target="#{leadMB.comment}" value="#{myComment}" />
				</p:commandButton>
			</p:column>
		
		    <p:column>
		        <f:facet name="header">
		            <h:outputLabel value="Comentário" />
		        </f:facet>
		        <h:outputLabel value="#{myComment.comment}"/>
		     </p:column>
		
			<f:facet name="footer">  
	            Total de Comentários #{fn:length(leadMB.lead.comments)}.  
	        </f:facet>
		</p:dataTable>
	</p:fieldset>
		
		<div align="right" style="margin-top:5px">
			<p:commandButton value="#{bundle.update}" icon="ui-icon-plus" action="#{leadMB.update()}" update=":messageGrowl :tabView:leadListAllForm:leadsTable" 
					oncomplete="leadUpdateDialogWidget.hide();"/>
			<p:commandButton value="#{bundle.cancel}" icon="ui-icon-cancel" actionListener="#{leadMB.resetLead()}" onclick="leadUpdateDialogWidget.hide();" type="button"/>
		</div>
		<br/>
	</h:form>
</p:dialog>
<ui:include src="/pages/protected/defaultUserPages/address/includes/addressUpdateADD_lead.xhtml"/>
<ui:include src="/pages/protected/defaultUserPages/phone/includes/phoneUpdateADD_lead.xhtml"/>
<ui:include src="/pages/protected/defaultUserPages/socialNetwork/includes/socialNetworkUpdateADD_lead.xhtml"/>
<ui:include src="/pages/protected/defaultUserPages/politicalSupport/includes/politicalSupportUpdateADD_lead.xhtml"/>
<ui:include src="/pages/protected/defaultUserPages/comment/includes/commentUpdateADD_lead.xhtml"/>
</h:body>

</html>
Lead.java

Code: Select all

package br.com.blacksystems.politico.entities;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
import javax.validation.constraints.NotNull;

import org.hibernate.envers.Audited;
import org.hibernate.validator.constraints.Length;

import br.com.blacksystems.politico.entities.enums.PoliticalParty;
import br.com.blacksystems.politico.entities.enums.Segment;

@Entity
@Audited
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "name", "owner_id" }) }, name="LEADS")
@NamedQueries({
	@NamedQuery(name = "Lead.findLead", query = "SELECT l FROM Lead l ORDER BY l.name" ),
	@NamedQuery(name = "Leead.findLeadOwner", query = "SELECT l FROM Lead l WHERE l.owner = :owner ORDER BY l.name" )})
public class Lead implements Serializable {
	
	private static final long serialVersionUID = 5652911634641397294L;

	public static final String FIND_ALL = "Lead.findLead";
	public static final String FIND_ALL_OWNER = "Lead.findLeadOwner";

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ_LEAD")
	@SequenceGenerator(name="SEQ_LEAD", sequenceName="SEQ_LEADS")  
	private int id;

	@Version
	private Long version;

	@Column(length=100)
	@Length(max=100,message="{lead.length.nickname}")
	private String nickname;
	
	@NotNull
	@Column(length=200, nullable=false)
	@Length(min=3, max=200, message="{lead.length.name}")
	private String name;
	
	@NotNull
	@Column(nullable=false)
	private boolean lead;
	
	@NotNull
	@Column(nullable=false)
	private Segment segment;
	
	@Temporal(value=TemporalType.DATE)
	private Date birthday;
	
	@NotNull
	@Column(nullable=false)
	private boolean affiliate;
	
	private PoliticalParty politicalParty;
	
	@Column(length=200)
	@Length(max=200, message="{lead.length.profession}")
	private String profession;
	
	@Column(length=200)
	@Length(max=200, message="{lead.length.currentPosition}")
	private String currentPosition;
	
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<Phone> phones;
	
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<Address> addresses;
	
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<SocialNetwork> socialNetworks;
	
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<PoliticalSupport> politicalSupports;
	
	@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
	private List<Comment> comments;
	
	@ManyToOne(optional=true, fetch=FetchType.EAGER)
	private CompanyOwner owner;

	@NotNull
	@Column(nullable=false)
	private boolean active;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Long getVersion() {
		return version;
	}

	public void setVersion(Long version) {
		this.version = version;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public boolean isLead() {
		return lead;
	}

	public void setLead(boolean lead) {
		this.lead = lead;
	}

	public Segment getSegment() {
		return segment;
	}

	public void setSegment(Segment segment) {
		this.segment = segment;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public boolean isAffiliate() {
		return affiliate;
	}

	public void setAffiliate(boolean affiliate) {
		this.affiliate = affiliate;
	}

	public PoliticalParty getPoliticalParty() {
		return politicalParty;
	}

	public void setPoliticalParty(PoliticalParty politicalParty) {
		this.politicalParty = politicalParty;
	}

	public String getProfession() {
		return profession;
	}

	public void setProfession(String profession) {
		this.profession = profession;
	}

	public String getCurrentPosition() {
		return currentPosition;
	}

	public void setCurrentPosition(String currentPosition) {
		this.currentPosition = currentPosition;
	}

	public List<Phone> getPhones() {
		return phones;
	}

	public void setPhones(List<Phone> phones) {
		this.phones = phones;
	}

	public List<Address> getAddresses() {
		return addresses;
	}

	public void setAddresses(List<Address> addresses) {
		this.addresses = addresses;
	}

	public List<SocialNetwork> getSocialNetworks() {
		return socialNetworks;
	}

	public void setSocialNetworks(List<SocialNetwork> socialNetworks) {
		this.socialNetworks = socialNetworks;
	}

	public List<PoliticalSupport> getPoliticalSupports() {
		return politicalSupports;
	}

	public void setPoliticalSupports(List<PoliticalSupport> politicalSupports) {
		this.politicalSupports = politicalSupports;
	}

	public List<Comment> getComments() {
		return comments;
	}

	public void setComments(List<Comment> comments) {
		this.comments = comments;
	}

	public CompanyOwner getOwner() {
		return owner;
	}

	public void setOwner(CompanyOwner owner) {
		this.owner = owner;
	}

	public boolean isActive() {
		return active;
	}

	public void setActive(boolean active) {
		this.active = active;
	}

}

PrimeFaces PRO
Posts: 41
Joined: 27 Jan 2013, 23:44

27 Jan 2013, 23:47

With PrimeFaces PRO, it's easy to support, tune and add features to PrimeFaces as if it were an in-house framework.

PrimeFaces PRO is a term based commercial support service. With the exclusive services of Pro account, you no longer need to post your questions in PrimeFaces community forum and your issues to community issue tracker.

Standard PRO Services

Access to pro.primefaces.org
Response at most in 1 business day.
Defect patches.
Private branch management in case you need.
Customized builds.
Unlimited number of cases.
Remote desktop connection.
Conference calls for discussions.
High priority to your issues.
Non PrimeFaces related general JSF assistance.

New Features

New feature and enhancement requests are not available in core services and provided via an hour based model instead. When you have a feature request we provide an estimate, if you confirm we deliver your request within an estimated timeframe and deduct the amount of work from your hours. These requests can be;

- New components.
- New functionality to existing components.
- Changing the way a certain functionality is implemented.
- Proof of Concept implementations of a use case.
- Code reviews to offer best practices.

Hourly rate is 200 usd and discounts apply on bulk purchases that are more than 50. You can purchase additional hours along with the subscription and also anytime during your subscription period. If your subscription term ends with unused hours, they will be added to your new subscription term in case you extend.

To get a quote, please contact us and mention the total number of developers who will be working in your PrimeFaces projects.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 54 guests