【问题标题】:display foreign key in javafx TableView在 javafx TableView 中显示外键
【发布时间】:2015-11-15 16:34:15
【问题描述】:

名字是法语

.......

Enseignant = 老师

Matiere = 主题

nom = 姓氏

prenom = 名字

.......

我使用带有 FXML 的 javafx 2 和使用 MVC 模式的休眠, 我想在 TableView 中显示“Enseignant”列表

tableView 结构:

<TableView fx:id="tableau" >
    <columns>
        <TableColumn fx:id="ID" prefWidth="43.0" text="ID" />
        <TableColumn fx:id="NOM" prefWidth="95.0" text="NOM" />
        <TableColumn fx:id="PRENOM" prefWidth="94.0" text="PRENOM" />
        <TableColumn fx:id="MATIERE" prefWidth="97.0" text="Matière" />
    </columns>     
  </TableView>

在数据库中我有 2 个表:

Enseignant(ID, #idMatiere, nom, prenom)
Matiere(IDMatiere, intitule)

hibernate 将使用每个表作为类

封臣:

public class Enseignant  implements java.io.Serializable {

   private Integer idEnseignant;
   private Matiere matiere;
   private String nom;
   private String prenom;

材料:

public class Matiere  implements java.io.Serializable {


   private int idMatiere;
   private String intitule;

“Enseignant”的控制器有一个方法“show()”它显示教师列表

ID.setCellValueFactory(new PropertyValueFactory<Enseignant, Integer>("idEnseignant"));
NOM.setCellValueFactory(new PropertyValueFactory<Enseignant, String>("nom"));
PRENOM.setCellValueFactory(new PropertyValueFactory<Enseignant, String>("prenom"));
MATIERE.setCellValueFactory(new PropertyValueFactory<Enseignant, String>("matiere"));
tableau.setItems(em.getEnseignant());

最后,它向我显示了正常的列表,但“matiere”列指的是对象,例如:hibernate.Matiere@59456543

【问题讨论】:

    标签: java hibernate javafx foreign-keys tableview


    【解决方案1】:

    在这种情况下你必须改变

    MATIERE.setCellValueFactory(new PropertyValueFactory<Enseignant, String>("matiere")); 
    

    MATIERE.setCellValueFactory(new Callback<CellDataFeatures<Enseignant,String>,ObservableValue<String>>(){
    
                    @Override
                    public ObservableValue<String> call(CellDataFeatures<Enseignant, String> param) {
                        return new SimpleStringProperty(param.getValue().getMatiere().getIntitule());
                    }
                });
    

    【讨论】:

    • 很高兴为您提供帮助。 :)
    猜你喜欢
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 2018-11-13
    • 2016-09-02
    • 2014-07-28
    相关资源
    最近更新 更多