Olá pessoal.
Estou com problemas para refatorar um projeto que era apenas web e agora é enterprise. Ao executar uma rotina que lista identidades, é lançada a seguinte exceção:
[b]Status do HTTP 500 - Internal Server Error
type Relatório de exceção
mensagemInternal Server Error
descriçãoO servidor encontrou um erro interno ({0}) que o impediu de atender esta solicitação.
exception
javax.servlet.ServletException:
Internal Exception: org.postgresql.util.PSQLException: ERROR: column “dtype” does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name=“solicitante” referenceClass=Pessoa )
causa-raiz
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: column “dtype” does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name=“solicitante” referenceClass=Pessoa )
causa-raiz
org.postgresql.util.PSQLException: ERROR: column “dtype” does not exist
Posição: 17
observação Os rastreamentos de pilha completa da exceção e suas causas-raiz estão disponíveis nos logs de GlassFish Server Open Source Edition 4.0 .[/b]
Log do Glassfish:
WARNING: Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name="solicitante" referenceClass=Pessoa )
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:679)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1995)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:714)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:2777)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingDefaultMultipleTableSubclassRead(InheritancePolicy.java:1485)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingMultipleTableSubclassRead(InheritancePolicy.java:1515)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2727)
at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:526)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1155)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1114)
at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:429)
at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3207)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1797)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1779)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:115)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:102)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:165)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:226)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at br.ufscar.identidade.negocio.modelo.Identidade._persistence_get_solicitante(Identidade.java)
at br.ufscar.identidade.negocio.modelo.Identidade.getSolicitante(Identidade.java:235)
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:606)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:385)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:162)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:1002)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:641)
... 94 more
SEVERE: Error Rendering View[/identidade/solicitadas.xhtml]
javax.el.ELException: /identidade/solicitadas.xhtml @36,74 value="#{identidade.solicitante.nome}": Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name="solicitante" referenceClass=Pessoa )
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:385)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:162)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)
Caused by: javax.el.ELException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name="solicitante" referenceClass=Pessoa )
at javax.el.BeanELResolver.getValue(BeanELResolver.java:368)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
... 56 more
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
Error Code: 0
Call: SELECT DISTINCT DTYPE FROM pessoa WHERE (id_pessoa = ?)
bind => [1 parameter bound]
Query: ReadObjectQuery(name="solicitante" referenceClass=Pessoa )
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:679)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1995)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:714)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:2777)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingDefaultMultipleTableSubclassRead(InheritancePolicy.java:1485)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingMultipleTableSubclassRead(InheritancePolicy.java:1515)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2727)
at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:526)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1155)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1114)
at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:429)
at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3207)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1797)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1779)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:115)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:102)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:165)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:226)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at br.ufscar.identidade.negocio.modelo.Identidade._persistence_get_solicitante(Identidade.java)
at br.ufscar.identidade.negocio.modelo.Identidade.getSolicitante(Identidade.java:235)
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:606)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
... 63 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:1002)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:641)
... 94 more
WARNING: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
org.postgresql.util.PSQLException: ERROR: column "dtype" does not exist
Posição: 17
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:1002)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:641)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1995)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:714)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:2777)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingDefaultMultipleTableSubclassRead(InheritancePolicy.java:1485)
at org.eclipse.persistence.descriptors.InheritancePolicy.selectOneRowUsingMultipleTableSubclassRead(InheritancePolicy.java:1515)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2727)
at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:526)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1155)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1114)
at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:429)
at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3207)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1797)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1779)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:115)
at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:102)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:165)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:226)
at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
at br.ufscar.identidade.negocio.modelo.Identidade._persistence_get_solicitante(Identidade.java)
at br.ufscar.identidade.negocio.modelo.Identidade.getSolicitante(Identidade.java:235)
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:606)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:385)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:162)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)
As tabelas:
Pessoa
CREATE TABLE pessoa
(
id_pessoa serial NOT NULL, -- Identificador artificial de registro.
nome character varying(100) NOT NULL, -- Nome da pessoa.
cpf character varying(11) NOT NULL, -- Número de CPF (Cadastro de Pessoa Física) da pessoa.
documento_identidade character varying(12), -- Documento de identidade.
email character varying(50) NOT NULL, -- Endereço de e-mail.
data_nascimento date NOT NULL, -- Data de nascimento.
sexo character(1) NOT NULL, -- Identidade de gênero: F=feminino e M=masculino.
foto character varying(20) NOT NULL, -- Nome do arquivo da imagem da foto.
CONSTRAINT pessoa_pkey PRIMARY KEY (id_pessoa),
CONSTRAINT pessoa_cpf_key UNIQUE (cpf)
)
Aluno
CREATE TABLE aluno
(
id_aluno integer NOT NULL, -- Identificador artificial de registro.
codigo character varying(20) NOT NULL, -- Código do aluno na instituição para um determinado curso.
data_ingresso date NOT NULL, -- Data de ingresso em um determinado curso.
tipo character(1) NOT NULL, -- Tipo de aluno: G=graduação, P=pós-graduação, E=extensão e T=técnico.
id_curso integer NOT NULL, -- Identificador de registro da tabela de cursos.
CONSTRAINT aluno_pkey PRIMARY KEY (id_aluno),
CONSTRAINT aluno_id_aluno_fkey FOREIGN KEY (id_aluno)
REFERENCES pessoa (id_pessoa) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT aluno_id_curso_fkey FOREIGN KEY (id_curso)
REFERENCES curso (id_curso) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT aluno_codigo_tipo_key UNIQUE (codigo, tipo)
)
Identidade
CREATE TABLE identidade
(
id_identidade serial NOT NULL, -- Identificador artificial de registro.
codigo_barras character(14) NOT NULL, -- Código para representação gráfica em barras.
codigo_rfid character(8) NOT NULL, -- Código UID do cartão.
via smallint NOT NULL, -- Número da via.
data_validade date NOT NULL, -- Data de validade.
situacao character varying(40) NOT NULL, -- Situação da solicitação/identidade.
id_solicitante integer NOT NULL, -- Identificador artificial de registro da tabela de pessoas para identificar o solicitante da carteirinha.
data_solicitacao timestamp with time zone NOT NULL, -- Data de solicitação.
id_moderador integer, -- Identificador artificial de registro da tabela de usuarios para identificar o moderador da carteirinha.
data_moderacao timestamp with time zone, -- Data de moderação.
id_emissor integer, -- Identificador artificial de registro da tabela de usuarios para identificar o emissor da carteirinha.
data_emissao timestamp with time zone, -- Data de emissão (impressão).
CONSTRAINT identidade_pkey PRIMARY KEY (id_identidade),
CONSTRAINT identidade_id_emissor_fkey FOREIGN KEY (id_emissor)
REFERENCES usuario (id_usuario) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT identidade_id_moderador_fkey FOREIGN KEY (id_moderador)
REFERENCES usuario (id_usuario) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT identidade_id_solicitante_fkey FOREIGN KEY (id_solicitante)
REFERENCES pessoa (id_pessoa) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT identidade_codigo_barras_key UNIQUE (codigo_barras),
CONSTRAINT identidade_codigo_rfid_key UNIQUE (codigo_rfid)
)
As classes:
Pessoa
@Entity
@Table(name = "pessoa", uniqueConstraints = {
@UniqueConstraint(columnNames = {"cpf"})})
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Pessoa.findAll", query = "SELECT p FROM Pessoa p"),
@NamedQuery(name = "Pessoa.findByIdPessoa", query = "SELECT p FROM Pessoa p WHERE p.id = :id"),
@NamedQuery(name = "Pessoa.findByNome", query = "SELECT p FROM Pessoa p WHERE p.nome = :nome"),
@NamedQuery(name = "Pessoa.findByCpf", query = "SELECT p FROM Pessoa p WHERE p.cpf = :cpf"),
@NamedQuery(name = "Pessoa.findByEmail", query = "SELECT p FROM Pessoa p WHERE p.email = :email")})
public abstract class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_pessoa", nullable = false)
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 100)
@Column(name = "nome", nullable = false, length = 100)
private String nome;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 11)
@Column(name = "cpf", nullable = false, length = 11)
private String cpf;
@Size(max = 12)
@Column(name = "documento_identidade", length = 12)
private String documentoDeIdentidade;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="E-mail inválido")//if the field contains email address consider using this annotation to enforce field validation
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(name = "email", nullable = false, length = 50)
private String email;
@Basic(optional = false)
@NotNull
@Column(name = "data_nascimento", nullable = false)
@Temporal(TemporalType.DATE)
private Date dataDeNascimento;
@Basic(optional = false)
@NotNull
@Column(name = "sexo", nullable = false)
private char sexo;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "foto", nullable = false, length = 20)
private String foto;
@OneToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST}, mappedBy = "solicitante", fetch = FetchType.LAZY)
private Collection<Identidade> identidadesSolicitadas;
public Pessoa() {
}
public Pessoa(Integer id) {
this.id = id;
}
public Pessoa(Integer id, String nome, String cpf, String email, Date dataDeNascimento, char sexo, String foto) {
this.id = id;
this.nome = nome;
this.cpf = cpf;
this.email = email;
this.dataDeNascimento = dataDeNascimento;
this.sexo = sexo;
this.foto = foto;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getDocumentoDeIdentidade() {
return documentoDeIdentidade;
}
public void setDocumentoDeIdentidade(String documentoDeIdentidade) {
this.documentoDeIdentidade = documentoDeIdentidade;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getDataDeNascimento() {
return dataDeNascimento;
}
public void setDataDeNascimento(Date dataDeNascimento) {
this.dataDeNascimento = dataDeNascimento;
}
public char getSexo() {
return sexo;
}
public void setSexo(char sexo) {
this.sexo = sexo;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
this.foto = foto;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Pessoa)) {
return false;
}
Pessoa other = (Pessoa) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.ufscar.identidade.negocio.modelo.Pessoa[ idPessoa=" + id + " ]";
}
@XmlTransient
public Collection<Identidade> getIdentidadeCollection() {
return identidadesSolicitadas;
}
public void setIdentidadeCollection(Collection<Identidade> identidadeCollection) {
this.identidadesSolicitadas = identidadeCollection;
}
}
Aluno
@Entity
@Table(name = "aluno", uniqueConstraints = {
@UniqueConstraint(columnNames = {"codigo", "tipo"})})
@PrimaryKeyJoinColumn(name = "id_aluno")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Aluno.findAll", query = "SELECT a FROM Aluno a"),
@NamedQuery(name = "Aluno.findByCodigo", query = "SELECT a FROM Aluno a WHERE a.codigo = :codigo")})
public class Aluno extends Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "codigo", nullable = false, length = 20)
private String codigo;
@Basic(optional = false)
@NotNull
@Column(name = "data_ingresso", nullable = false)
@Temporal(TemporalType.DATE)
private Date dataDeIngresso;
@Basic(optional = false)
@NotNull
@Column(name = "tipo", nullable = false)
private char tipo;
@JoinColumn(name = "id_curso", referencedColumnName = "id_curso", nullable = false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST}, optional = false, fetch = FetchType.LAZY)
private Curso curso;
public Aluno() {
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public Date getDataDeIngresso() {
return dataDeIngresso;
}
public void setDataDeIngresso(Date dataDeIngresso) {
this.dataDeIngresso = dataDeIngresso;
}
public char getTipo() {
return tipo;
}
public void setTipo(char tipo) {
this.tipo = tipo;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
}
Identidade
@Entity
@Table(name = "identidade", uniqueConstraints = {
@UniqueConstraint(columnNames = {"codigo_barras"}),
@UniqueConstraint(columnNames = {"codigo_rfid"})})
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Identidade.findAll", query = "SELECT i FROM Identidade i"),
@NamedQuery(name = "Identidade.findByIdIdentidade", query = "SELECT i FROM Identidade i WHERE i.id = :id"),
@NamedQuery(name = "Identidade.findByCodigoBarras", query = "SELECT i FROM Identidade i WHERE i.codigoDeBarras = :codigoDeBarras"),
@NamedQuery(name = "Identidade.findByCodigoRfid", query = "SELECT i FROM Identidade i WHERE i.codigoRfid = :codigoRfid"),
@NamedQuery(name = "Identidade.findBySituacao", query = "SELECT i FROM Identidade i WHERE i.situacao = :situacao"),
@NamedQuery(name = "Identidade.findByDataSolicitacao", query = "SELECT i FROM Identidade i WHERE i.dataDeSolicitacao = :dataDeSolicitacao"),
@NamedQuery(name = "Identidade.findByDataModeracao", query = "SELECT i FROM Identidade i WHERE i.dataDeModeracao = :dataDeModeracao"),
@NamedQuery(name = "Identidade.findByDataEmissao", query = "SELECT i FROM Identidade i WHERE i.dataDeEmissao = :dataDeEmissao")})
public class Identidade implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_identidade", nullable = false)
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 14)
@Column(name = "codigo_barras", nullable = false, length = 14)
private String codigoDeBarras;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 8)
@Column(name = "codigo_rfid", length = 8)
private String codigoRfid;
@Basic(optional = false)
@NotNull
@Column(name = "via", nullable = false)
private short via;
@Basic(optional = false)
@NotNull
@Column(name = "data_validade", nullable = false)
@Temporal(TemporalType.DATE)
private Date dataDeValidade;
@Basic(optional = false)
@NotNull
@Column(name = "situacao", nullable = false, length = 40)
@Enumerated(EnumType.STRING)
private SituacaoEnum situacao;
@Basic(optional = false)
@NotNull
@Column(name = "data_solicitacao", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date dataDeSolicitacao;
@Column(name = "data_moderacao")
@Temporal(TemporalType.TIMESTAMP)
private Date dataDeModeracao;
@Column(name = "data_emissao")
@Temporal(TemporalType.TIMESTAMP)
private Date dataDeEmissao;
@JoinTable(name = "identidade_recusa", joinColumns = {
@JoinColumn(name = "id_identidade", referencedColumnName = "id_identidade", nullable = false)}, inverseJoinColumns = {
@JoinColumn(name = "id_motivorecusa", referencedColumnName = "id_motivorecusa", nullable = false)})
@ManyToMany(fetch = FetchType.LAZY)
private Collection<MotivoRecusa> motivosDeRecusa;
@JoinColumn(name = "id_emissor", referencedColumnName = "id_usuario")
@ManyToOne(fetch = FetchType.LAZY)
private Usuario emissor;
@JoinColumn(name = "id_moderador", referencedColumnName = "id_usuario")
@ManyToOne(fetch = FetchType.LAZY)
private Usuario moderador;
@JoinColumn(name = "id_solicitante", referencedColumnName = "id_pessoa", nullable = false)
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST}, optional = false, fetch = FetchType.LAZY)
private Pessoa solicitante;
public Identidade() {
}
public Identidade(Integer idIdentidade) {
this.id = idIdentidade;
}
public Identidade(Integer id, String codigoBarras, String codigoRfid, short via, Date dataDeValidade, SituacaoEnum situacao, Date dataDeSolicitacao) {
this.id = id;
this.codigoDeBarras = codigoBarras;
this.codigoRfid = codigoRfid;
this.via = via;
this.dataDeValidade = dataDeValidade;
this.situacao = situacao;
this.dataDeSolicitacao = dataDeSolicitacao;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCodigoDeBarras() {
return codigoDeBarras;
}
public void setCodigoDeBarras(String codigoDeBarras) {
this.codigoDeBarras = codigoDeBarras;
}
public String getCodigoRfid() {
return codigoRfid;
}
public void setCodigoRfid(String codigoRfid) {
this.codigoRfid = codigoRfid;
}
public short getVia() {
return via;
}
public void setVia(short via) {
this.via = via;
}
public Date getDataDeValidade() {
return dataDeValidade;
}
public void setDataDeValidade(Date dataDeValidade) {
this.dataDeValidade = dataDeValidade;
}
public SituacaoEnum getSituacao() {
return situacao;
}
public void setSituacao(SituacaoEnum situacao) {
this.situacao = situacao;
}
public Date getDataDeSolicitacao() {
return dataDeSolicitacao;
}
public void setDataDeSolicitacao(Date dataDeSolicitacao) {
this.dataDeSolicitacao = dataDeSolicitacao;
}
public Date getDataDeModeracao() {
return dataDeModeracao;
}
public void setDataDeModeracao(Date dataDeModeracao) {
this.dataDeModeracao = dataDeModeracao;
}
public Date getDataDeEmissao() {
return dataDeEmissao;
}
public void setDataDeEmissao(Date dataDeEmissao) {
this.dataDeEmissao = dataDeEmissao;
}
@XmlTransient
public Collection<MotivoRecusa> getMotivosDeRecusa() {
return motivosDeRecusa;
}
public void setMotivosDeRecusa(Collection<MotivoRecusa> motivosDeRecusa) {
this.motivosDeRecusa = motivosDeRecusa;
}
public Usuario getEmissor() {
return emissor;
}
public void setEmissor(Usuario usuario) {
this.emissor = usuario;
}
public Usuario getModerador() {
return moderador;
}
public void setModerador(Usuario usuario) {
this.moderador = usuario;
}
public Pessoa getSolicitante() {
return solicitante;
}
public void setSolicitante(Pessoa pessoa) {
this.solicitante = pessoa;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Identidade)) {
return false;
}
Identidade other = (Identidade) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.ufscar.identidade.negocio.modelo.Identidade[ idIdentidade=" + id + " ]";
}
}
Percebam que não estou usando @DiscriminatorColumn(name = “tipo”, length = 1) na classe Pessoa e @DiscriminatorValue(value = “A”) na classe Aluno, do mesmo modo que era no projeto web por exemplo, de propósito. A intenção depois é extender a classe Funcionário da classe abstrata Pessoa também, uma vez que no negócio deste projeto, uma pessoa por ser tanto aluno quanto funcionário ao mesmo tempo.
Projeto usando:
- Glassfish 4 (com EclipseLink 2.1)
- PostgreSQL 9.1 (driver v.903 JDBC 4)
Att.