Bonjour !
J'ai un soucis que j'aimerais partager avec vous.
J'essaie de remplir ma Datatable aves les données d'une table de ma base de données oracle.

// Mon formulaire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html  xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:rich="http://richfaces.org/rich"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:p="http://primefaces.org/ui"
       xmlns:f="http://java.sun.com/jsf/core">
 
    <ui:composition template="../template/simptemplate.xhtml">
        <ui:define  name="content">
            <h:form id="frmAttributaire">
                <div id="toolbar">
                    <h:commandButton value="Quitter" action="#{dacView.quitter}" />
                </div>
                <h:messages showDetail="true" id="msgs" infoClass="info" errorClass="error"/> <br/>
                <h:panelGrid columns="4">
                    <p:commandButton value="Choisir fournisseur" oncomplete="dlg_choix_frs.show();" />
                    <p:commandButton value="Rechercher Fournisseur" action="#{dacView.frsRecherche}" update=":frmAttributaire:richAttrib" />
                    <p:commandButton value="Déclarer lot infructueux" action="#{dacView.declarerLotInfructueux()}" onclick="if (!confirm('Déclarer le lot infructueux ; vous confirmez ?'))
                                return false;"/>
                </h:panelGrid>
                <rich:panel id="richAttrib">
                    <h:outputLabel value="Numéro IFU :"/> <h:outputLabel value="#{dacView.fournisseurBP.ifu}"/><br/>                   
                    <h:outputLabel value="Raison sociale :"/>  <h:outputLabel value="#{dacView.fournisseurBP.raisonSocial}"/> <br/>
                    <h:outputLabel value="Sigle :"/>  <h:outputLabel value="#{dacView.fournisseurBP.sigle}"/><br/>
                    <p:commandButton value="Attribuer"  action="#{dacView.attribuerLot}"/>
                </rich:panel>
 
                <p:dialog header="Choix d'un fournisseur" widgetVar="dlg_choix_frs" resizable="true" showEffect="clip" hideEffect="fade" modal="true"
                          style="font-size: 10pt;" closable="true" >
                    <h:form id="choix_frs_form">
                        <h:messages id="msg" infoClass="info" errorClass="error"/>
 
                        <p:dataTable id="table_frs_libre" value="#{dacView.fournisseursBP}" var="frsBP" emptyMessage="Aucun fournisseur trouvé..."
                                     pageLinks="3" paginatorAlwaysVisible="false" paginatorPosition="top" rows="10" paginator="true">
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value=" " />
                                </f:facet>
                                <p:commandLink value="Select." style="font-size: 7pt;"  update=":frmAttributaire:richAttrib" oncomplete="dlg_choix_frs.hide()"
                                                >
                                    <f:setPropertyActionListener value="#{frsBP}" target="#{dacView.fournisseurBP}"/>
                                </p:commandLink>
                            </p:column>
 
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Code" />
                                </f:facet>
                                <h:outputText value="#{frsBP.codeFrs}" />
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Raison sociale" />
                                </f:facet>
                                <h:outputText value="#{frsBP.raisonSocial}" />
                            </p:column>
                            <p:column  filterBy="#{frsBP.sigle}">
                                <f:facet name="header">
                                    <h:outputText value="Sigle" />
                                </f:facet>
                                <h:outputText value="#{frsBP.sigle}" />
                            </p:column>
                            <p:column filterBy="#{frsBP.ifu}">
                                <f:facet name="header">
                                    <h:outputText value="IFU" />
                                </f:facet>
                                <h:outputText value="#{frsBP.ifu}" />
                            </p:column>
                            <p:column filterBy="#{frsBP.adresse}">
                                <f:facet name="header">
                                    <h:outputText value="Adresse" />
                                </f:facet>
                                <h:outputText value="#{frsBP.adresse}" />
                            </p:column> 
                        </p:dataTable>
                    </h:form>
                </p:dialog>
            </h:form>
        </ui:define>
    </ui:composition>
</html>
//
La requête dans FournisseurDao.java (Il s'agit de chargeur tous les fournisseurs de ma BD qui valent 90 000 fournisseurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
        public List<Fournisseur> lesNonSoumissionnairesDuDacBP(){
        return em.createQuery("SELECT f FROM Fournisseur f ")
                .getResultList();
    }

Dans le Bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
//1. Déclaration des variables (je previens que les getters existent)
 
    private Fournisseur fournisseurBP;
    private List<Fournisseur> fournisseursBP;
 
//2. La methode sensée me retourner les fournisseurs dans le formulaire
 
    public List<Fournisseur> getFournisseursBP() {
     fournisseursBP = frsDao.lesNonSoumissionnairesDuDacBP();
        return fournisseursBP;
    }
Mon problème :
1. Je n'arrive pas à charger mes fournisseurs dans la dataTable au niveau du p:dialog du formulaire
2. Comment ressoudre cela (le fait de charger environ 100 000 lignes ?

Merci beaucoup pour vos aides.