récupération dans une datatable
bonjour je suis débutante en jsf ,mon probleme c'est que je veux récupérer les données de la base dans un datatable,mais il m'affiche un erreurs dans l'evenement :selection.voila mon code.
code XHTML:
Code:
1 2 3 4 5 6
| <p:dataTable id="sos" var="societe" value="#{societeBean.toutes_les_sos}" paginator="true" rows="10" selection="#{societeBean.idSos}">
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="Société">
#{societe.raisonSociale}
</p:column>
</p:dataTable> |
classe Bean:
Code:
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
|
public class SocieteBean {
private Long idSos;
private List<Societe> toutes_les_sos;
public Long getIdSos() {
return idSos;
}
public void setIdSos(Long idSos) {
this.idSos = idSos;
}
public List<Societe> getToutes_les_sos() {
return toutes_les_sos;
}
public void setToutes_les_sos(List<Societe> toutes_les_sos) {
this.toutes_les_sos = toutes_les_sos;
}
@PostConstruct
public void init(){
toutes_les_sos= new DaoSociete().findAll();
}
} |
classe Dao:
public class DaoSociete {
Code:
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
| private EntityManagerFactory emf = Persistence.createEntityManagerFactory("EMALL_JPA");
private EntityManager em = emf.createEntityManager();
public void ajouter(Societe societe){
try{
this.begin();
em.persist(societe);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de l'ajout de la société");
e.printStackTrace();
}
}
public void delete(Societe societe){
try{
this.begin();
em.remove(societe);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de la suppression de la société");
e.printStackTrace();
}
}
public Societe find(long id){
return em.find(Societe.class, id);
}
public void update(Societe societe){
try{
this.begin();
Societe soc=em.find(Societe.class,societe.getId());
soc.setRaisonSociale(societe.getRaisonSociale());
em.merge(soc);
this.commit();
}catch(Exception e){
System.out.println("Erreur lors de la modification de la societe");
e.printStackTrace();
}
}
public List<Societe> findAll(){
Query query = em.createQuery("select c from Societe c");
return (List<Societe>) query.getResultList();
}
public Societe findByDescription(String description){
try {
Query query = em.createQuery("select c from Societe c where c.raisonSociale=:desc");
query.setParameter("desc", description);
return (Societe)query.getSingleResult();
}catch(Exception e){
e.printStackTrace();
return null;
}
} |
erreur:
Code:
DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled.
merci d'avance.