如何获取Object字段

时间:2014-06-14 18:12:40

标签: java sql hibernate jsf object

我在hibernate中使用join sql,我不得不返回List<object>。 在xhtml中,我使用我的数据表中的list[0],list[1]...

进入字段
 <p:dataTable id="display" var="listeFactures" value="#{factureBean.listeFactures}" editable="true" style="margin-bottom:10px" rowKey="#{listeFactures[0]}" selection="#{factureBean.facture}" selectionMode="single">
       <f:facet name="header">
           Liste des devis
       </f:facet>
       <p:column headerText="N° Facture">
           <p:cellEditor>
               <f:facet name="output"><h:outputText value="#{listeFactures[0]}" /></f:facet>
               <f:facet name="input"><p:inputText id="modelInput" value="#{listeFactures[0]}" style="width:100%"/></f:facet>

现在,为了编辑我在行上选择的字段,它会得到一个对象 所以我使用索引factureBean.facture[0]以相同的方式访问 但在我的豆子里,我不知道我怎么能得到我改变的价值因为它是一个对象。通常,如果它是Facture之类的具体内容,我会使用getFacture().getIdFacture()来更改ID。 如果有人知道如何做到这一点,我感谢你的帮助 修改 这是Facture.java

package net.vo;

import java.util.Date;

public class Facture  implements java.io.Serializable {


     private int idFacture;
     private Bondecommande bondecommande;
     private Rubrique rubrique;
     private Date dateFacture;
     private double montantFacture;
     private String etatFacture;

    public Facture() {
    }


    public Facture(int idFacture, Bondecommande bondecommande, Rubrique rubrique) {
        this.idFacture = idFacture;
        this.bondecommande = bondecommande;
        this.rubrique = rubrique;
    }
    public Facture(int idFacture, Bondecommande bondecommande, Rubrique rubrique, Date dateFacture, double montantFacture, String etatFacture) {
       this.idFacture = idFacture;
       this.bondecommande = bondecommande;
       this.rubrique = rubrique;
       this.dateFacture = dateFacture;
       this.montantFacture = montantFacture;
       this.etatFacture = etatFacture;
    }

    public int getIdFacture() {
        return this.idFacture;
    }

    public void setIdFacture(int idFacture) {
        this.idFacture = idFacture;
    }
    public Bondecommande getBondecommande() {
        return this.bondecommande;
    }

    public void setBondecommande(Bondecommande bondecommande) {
        this.bondecommande = bondecommande;
    }
    public Rubrique getRubrique() {
        return this.rubrique;
    }

    public void setRubrique(Rubrique rubrique) {
        this.rubrique = rubrique;
    }
    public Date getDateFacture() {
        return this.dateFacture;
    }

    public void setDateFacture(Date dateFacture) {
        this.dateFacture = dateFacture;
    }
    public double getMontantFacture() {
        return this.montantFacture;
    }

    public void setMontantFacture(double montantFacture) {
        this.montantFacture = montantFacture;
    }
    public String getEtatFacture() {
        return this.etatFacture;
    }

    public void setEtatFacture(String etatFacture) {
        this.etatFacture = etatFacture;
    }

}

@Override
    public List<Object> getAllFactures(int annee,int rubrique,int fournisseur) {
        Session session=HibernateUtil.getSession();
        try
        {
            session.beginTransaction();
            Rubrique r = daoR.getRubrique(rubrique);
            Fournisseur f = daoF.getFournisseur(fournisseur);
            Query q = session.createQuery("select f.idFacture,f.dateFacture,f.montantFacture,f.etatFacture,b.creditOuvert,b.creditReporte from Facture f,Budgetisation b,Rubrique r where year(f.dateFacture)=b.id.annee and f.rubrique=:rubrique and f.rubrique=r.idRubrique and r.idRubrique = b.rubrique and year(f.dateFacture)=:annee and f.bondecommande.devis.fournisseur=:fournisseur");
           q.setParameter("fournisseur", f);
          q.setParameter("rubrique", r);
         q.setParameter("annee", annee);
            listeFactures = q.list();
            return listeFactures;
        }
        catch(HibernateException e)
        {
            throw e;
        }
        finally
        {
            session.close();
        }
    }

1 个答案:

答案 0 :(得分:0)

当您获得包含列(单个对象)的记录列表(object [])时,您将获得List<Object[]>而不是List<Object>