java - 在javafx TableView中显示外键

标签 java hibernate javafx foreign-keys tableview

名字是法语

......................

少尉=老师

Matiere = 主题

名义=姓氏

prenom = 名字

............

我使用带有 FXML 的 javafx 2 和使用 MVC 模式的 hibernate, 我想在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;

Material :

public class Matiere  implements java.io.Serializable {


   private int idMatiere;
   private String intitule;

“Enseignant”的 Controller 有一个方法“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

最佳答案

在这种情况下你必须改变

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());
                }
            });

关于java - 在javafx TableView中显示外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722070/

相关文章:

java - 通过 MySQL JDBC 驱动程序 (Connector/J) 进行负载平衡

java - 需要澄清有关将对象映射到数据库、注释和一对多关系的信息

java - 无法从 servlet 上下文中检索 hibernate 外键

java - java中的重复数组需要打印数组元素的其余部分

java - 使用java代码获取在AWS DynamoDb中创建的表

java - 为什么我的 .jar 文件只能从 IntelliJ 打开?

JavaFX 将行打印到 TextFields 中

JavaFx 自动为动态添加的项目添加监听器

java - 如何为active mq 5.12设置特定的jdk版本

spring - 如何使用jpa或hibernate防止表被删除