elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  PrimeFaces Lazy Loading Ayuda...gracias
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PrimeFaces Lazy Loading Ayuda...gracias  (Leído 3,235 veces)
visualfree

Desconectado Desconectado

Mensajes: 201


Ver Perfil
PrimeFaces Lazy Loading Ayuda...gracias
« en: 9 Octubre 2015, 15:32 pm »

Ayuda con datatable y lazy loading.
 
Código:

            <p:dataTable  id="paises" var="pais" value="#{paisBean.lazyModel}"
                          paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}  "
                          paginator="true" rows="10" style="margin-bottom:20px"
                          rowKey="#{pais.id}"
                          selection="#{paisBean.pais}"
                          lazy="true"
                          selectionMode="single" >
                <p:column headerText="Id" width="100" filterBy="#{pais.id}"  filterMatchMode="contains">
                    <h:outputText value="#{pais.id}" style="font-size:12px" />
                </p:column>
                <p:column headerText="Nombre" filterBy="#{pais.nombre}"  filterMatchMode="contains">
                    <h:outputText value="#{pais.nombre}" style="font-size:12px" />
                </p:column>
                <p:column headerText="Estado" filterBy="#{pais.estado}"  filterMatchMode="contains">
                    <h:outputText value="#{pais.estado}" style="font-size:12px" />
                </p:column>
                <p:column  width="30" exportable="false">
                    <p:commandButton icon="ui-icon-search" style="width:20px;height:20px"  update=":form:display" oncomplete="PF('paisDialog').show()" />
                </p:column>
                <p:column  width="30" exportable="false">
                    <p:commandButton icon="ui-icon-trash" style="width:20px;height:20px"/>
                </p:column>
                <p:column  width="30" exportable="false">
                    <p:commandButton icon="ui-icon-refresh" style="width:20px;height:20px" />
                </p:column>
            </p:dataTable>


Código:

package com.ricardo.bean;

import com.ricardo.daos.PaisDAO;
import com.ricardo.daos.PaisDAOInterface;
import com.ricardo.daos.UsuarioDAO;
import com.ricardo.models.Pais;
import com.ricardo.models.Usuario;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

@ManagedBean
@ViewScoped
public class PaisBean implements Serializable {

    public Pais pais = new Pais();
    public PaisDAO pDAO = new PaisDAO();
    /*LAZY */
    private LazyDataModel<Pais> lazyModel;
    @PostConstruct  
    public void init() {  
       lazyModel = new LazyDataModel() {
        public List<Pais> load(int first, int pageSize, String sortField, boolean sortOrder, Map filters) {
            List<Pais> list = pDAO.getFindPais(first, first + pageSize);
            
            return list;
            }
        
        };
       lazyModel.setRowCount(pDAO.getTotalPaises());
    }
    public LazyDataModel<Pais> getLazyModel() {
        return lazyModel;
    }

    public void setpDAO(PaisDAO pDAO) {
        this.pDAO = pDAO;
    }
}


Código:

package com.ricardo.daos;
import com.ricardo.models.Pais;
import com.ricardo.models.Usuario;
import com.utilerias.HibernateUtil;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
public class PaisDAO{
 public int getTotalPaises() {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session sesion = sf.openSession();
        String hql = "select count(*) from Pais";
        Query query = sesion.createQuery(hql);
        return ((Number) query.uniqueResult()).intValue();
    }
    public List<Pais> getFindPais(final int firstRow, final int max){
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session sesion = sf.openSession();
        String hql = "from Pais";
        Query query = sesion.createQuery(hql);
        query.setFirstResult(firstRow);
        query.setMaxResults(max);
        List<Pais> lista = query.list();
        return lista;
    }}



Código:
package com.ricardo.models;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@Entity
public class Pais {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String nombre;
    private String estado;
    @OneToMany(mappedBy="pais")
    private List<Ciudad> ciudad = new ArrayList<Ciudad>();  
    public List<Ciudad> getCiudad() {
        return ciudad;
    }
    public void setCiudad(List<Ciudad> ciudad) {
        this.ciudad = ciudad;
    }

    public Pais(int id, String nombre, String estado) {
        this.id = id;
        this.nombre = nombre;
        this.estado = estado;
    }

    
    public Pais(){
    
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }
    
}


Dejo detalle del error:
Grave:   Error Rendering View[/sistema/pais.xhtml]
java.lang.UnsupportedOperationException: Lazy loading is not implemented.


« Última modificación: 9 Octubre 2015, 17:11 pm por visualfree » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: PrimeFaces Lazy Loading Ayuda...gracias
« Respuesta #1 en: 10 Octubre 2015, 23:12 pm »

http://stackoverflow.com/questions/15385315/primefaces-lazyload-datatable-lazydatamodel

Como comentan ahí, hay 2 métodos load. Has implementado uno, prueba implementando también el otro.


En línea

visualfree

Desconectado Desconectado

Mensajes: 201


Ver Perfil
Re: PrimeFaces Lazy Loading Ayuda...gracias
« Respuesta #2 en: 12 Octubre 2015, 05:25 am »

Gracias Ivan, testeare lo que me indicas , saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Loading en flash
Diseño Gráfico
#Borracho.- 1 1,787 Último mensaje 30 Diciembre 2005, 19:10 pm
por ™Carlos.®
[solucionado] ayuda con primefaces, 5 formularios en un xhtml
Java
jhonatanAsm 4 4,537 Último mensaje 21 Febrero 2015, 17:34 pm
por Usuario Invitado
Ayuda con JSF + PrimeFaces + Hibernate
Java
Toryas 1 2,752 Último mensaje 28 Abril 2015, 21:16 pm
por Toryas
Manual primefaces
Java
Beginner Web 1 1,857 Último mensaje 1 Mayo 2019, 01:51 am
por rub'n
JSF & Primefaces
Java
Beginner Web 1 1,925 Último mensaje 8 Mayo 2019, 15:31 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines