2016-02-14 46 views
1

我试图显示所选择的ID在ListView中的所有记录,但我怎么能显示例如记录从选择ID从列'名称'在休眠?在MySQL中,它看起来像它工作正常:在JavaFX中休眠 - 显示选定ID的记录

@Override 
     public void changed(ObservableValue<? extends String> observable, String oldValue, String idvalue) { 
      try { 
      pst = con.prepareStatement("SELECT * FROM przychodniadb.patient WHERE idpatient=" + idvalue); 
       rs = pst.executeQuery(); 

       while (rs.next()) { 
        infoPIDField.setText(rs.getString(1)); 
        infonameField.setText(rs.getString(2)); 
        infolastNameField.setText(rs.getString(3)); 
        infogenderField.setText(rs.getString(4)); 
        infoageField.setText(rs.getString(5)); 
        infophonenumberField.setText(rs.getString(6)); 
        infoadressField.setText(rs.getString(7)); 
        infodiseaseField.setText(rs.getString(8)); 
        infoconditionField.setText(rs.getString(9)); 
        infodataField.setText(rs.getString(12)); 
        infoRoomNumber.setText(rs.getString(13)); 
        infoRoomType.setText(rs.getString(10));*/ 

       } 

      } catch (SQLException e) { 

       e.printStackTrace(); 
      } 

     } 
    }); 

现在休眠:

@Override 
     public void changed(ObservableValue<? extends String> observable, String oldValue, String idvalue) { 

Query query3 = entityManager.createQuery("FROM Patient WHERE idpatient=:idpatient"); 
       query3.setParameter("idpatient", idvalue); 


        infoPIDField.setText(???); 
        infonameField.setText(???); 
        infolastNameField.setText(???); 
        ........... 


    }); 

我应该把作为参数?

回答

2

先取结果Patient对象是这样的:

Patient c = (Patient) query.getSingleResult();

此后,你可以使用简单的getter访问这些字段。

@Override 
public void changed(ObservableValue<? extends String> observable, String oldValue, String idvalue) { 

    Query query3 = entityManager.createQuery("FROM Patient WHERE idpatient=:idpatient"); 
    query3.setParameter("idpatient", idvalue); 

    Patient p = (Patient) query.getSingleResult(); 


    infoPIDField.setText(p.getPIDField()); 
    infonameField.setText(p.getNameField()); 
    infolastNameField.setText(p.getLastNameField()); 
    ........... 


}