Problemas com: DataTable + CriateCriteria

1 resposta
Cristofe

Olá Pessoal,

Estou desenvolvendo uma api para controle de usuários. Contudo, ao gerar uma lista utilizando o datatable:

<h:form id="list">
            <h:messages/>
            <h:dataTable value="#{usuarioBean.listUsuario}" var="usuario" rules="rows" cellspacing="5">
                <f:facet name="caption">
                    Lista de Usuario cadastrados no sistema.
                </f:facet>
                <f:facet name="inicio">
                    Inicio da Lista de usuarios.
                </f:facet>
                <f:facet name="fim">
                    Final da Lista de Usuarios.
                </f:facet>
                <h:column>
                    <h:commandLink action="/admin/cadUsuario.xhtml">
                        <h:graphicImage library="resources" name="usuario_ativo_1.png"/>
                        <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
                        <f:setPropertyActionListener target="#{usuarioBean.destinoSalvar}" value="/admin/atualizado.xhtml"/>
                    </h:commandLink>
                </h:column>
                <h:column>
                    <f:facet name="inicio">
                        Codigo:
                    </f:facet>
                    #{usuario.id}
                </h:column>
                <h:column>
                    <f:facet name="inicio">
                        Nome:
                    </f:facet>
                    #{usuario.nome}
                </h:column>
                <h:column>
                    <f:facet name="inicio">
                        Email:
                    </f:facet>
                    #{usuario.nome}
                </h:column>
                <h:column>
                    <h:commandLink action="#{usuarioBean.editar}">
                        <h:graphicImage library="resources" name="addedit.png"/>
                        <f:setPropertyActionListener target="#{UsuarioBean.usuario}" value="#{usuario}"/>
                    </h:commandLink>
                </h:column>
                <h:column>
                    <h:commandLink action="#{usuarioBean.excluir}">
                       
                            <h:graphicImage library="resources" name="delete_sel.png"/>
                            <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
                    </h:commandLink>
                </h:column>
            </h:dataTable>
        </h:form>

Através do dataTable value="#{usuarioBean.listUsuario} aciono o método getListUsuario() do Bean UsuarioBean:

private Usuario usuario = new Usuario();
    private Integer confirmaSenha;
    private Integer status;
    private String email;
    private String destinoSalvar;
    private List<Usuario> listUsuario;

    public List<Usuario> getListUsuario() {
        if (this.listUsuario == null) {
            UsuarioRN usuarioRN = new UsuarioRN();
            this.listUsuario = usuarioRN.listar();
        }

O método usuarioRN.listar() é chamado da Classe da regra de negócio:

public List<Usuario> listar() {
        return this.UsuarioDAO.listar();
    }

O método UsuarioDAO.listar() chama a interface:

package br.ifrr.usuario;

import br.ifrr.entity.*;
import java.util.List;

/**
 *
 * @author Cristofe Rocha
 */
public interface UsuarioDAO {

    public void salvar(Usuario usuario);

    public void atualizar(Usuario usuario);

    public void excluir(Usuario usuario);

    public List<Usuario> listar();
}

O método listar() é a interface utilizada pela classe UsuarioDAOhibernate:

public List<Usuario> listar() {
       Criteria criteria = this.sessao.createCriteria(Usuario.class);
        criteria.add(Restrictions.eq(null, Usuario));
        return criteria.list();
    }
Não sei o q esta acontecendo de errado, mas recebo os logs abaixo:
2 [http-8084-2] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.3.1.GA
43 [http-8084-2] INFO org.hibernate.cfg.Environment - Hibernate 3.2.5
46 [http-8084-2] INFO org.hibernate.cfg.Environment - hibernate.properties not found
48 [http-8084-2] INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
52 [http-8084-2] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
242 [http-8084-2] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
242 [http-8084-2] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
394 [http-8084-2] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
566 [http-8084-2] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: br.ifrr.entity.Usuario
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findAll => SELECT u FROM Usuario u
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByStatus => SELECT u FROM Usuario u WHERE u.status = :status
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByPermissao => SELECT u FROM Usuario u WHERE u.permissao = :permissao
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findById => SELECT u FROM Usuario u WHERE u.id = :id
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByNome => SELECT u FROM Usuario u WHERE u.nome = :nome
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByUsuario => SELECT u FROM Usuario u WHERE u.usuario = :usuario
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByPasswd => SELECT u FROM Usuario u WHERE u.passwd = :passwd
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByEmail => SELECT u FROM Usuario u WHERE u.email = :email
670 [http-8084-2] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity br.ifrr.entity.Usuario on table usuario
810 [http-8084-2] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
1032 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/aluno
1032 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}
1300 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - RDBMS: PostgreSQL, version: 9.0.3
1300 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.3 JDBC3 with SSL (build 603)
1356 [http-8084-2] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
1363 [http-8084-2] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
1366 [http-8084-2] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1372 [http-8084-2] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Cache provider: org.hibernate.cache.NoCacheProvider
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1384 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1384 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1385 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1385 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1548 [http-8084-2] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1951 [http-8084-2] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
18/04/2012 12:10:09 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/admin/listUsuario.xhtml]
javax.el.ELException: /admin/listUsuario.xhtml @12,104 value="#{usuarioBean.listUsuario}": Error reading 'listUsuario' on type br.ifrr.usuario.UsuarioBean
        at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:107)
        at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
        at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
        at javax.faces.component.UIData.getValue(UIData.java:554)
        at javax.faces.component.UIData.getDataModel(UIData.java:1248)
        at javax.faces.component.UIData.setRowIndex(UIData.java:447)
        at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)
        at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
        at javax.faces.component.UIData.encodeBegin(UIData.java:937)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1611)
        at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
        at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
        at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NullPointerException
        at br.ifrr.usuario.UsuarioDAOHibernate.listar(UsuarioDAOHibernate.java:63)
        at br.ifrr.usuario.UsuarioRN.listar(UsuarioRN.java:42)
        at br.ifrr.usuario.UsuarioBean.getListUsuario(UsuarioBean.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
        at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
        at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
        ... 35 more

A linha UsuarioDAOHibernate.java:63) é :

public List<Usuario> listar() {
       Criteria criteria = this.sessao.createCriteria(Usuario.class);  <<<<<<<<<linha 63>>>>>>>>>>
        criteria.add(Restrictions.eq(null, Usuario));
        return criteria.list();
    }
}

Um outro erro acontecenos mesmos logs em:

18/04/2012 12:10:09 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/admin/listUsuario.xhtml]
javax.el.ELException: /admin/listUsuario.xhtml @12,104 value="#{usuarioBean.listUsuario}": Error reading 'listUsuario' on type br.ifrr.usuario.UsuarioBean

Mas o método listUsuario foi implementado como foi visto acima.
Alguém pode me ajudar?

1 Resposta

Hebert_Coelho

Onde você está instanciando a sua sessao?

Criado 18 de abril de 2012
Ultima resposta 18 de abr. de 2012
Respostas 1
Participantes 2