Hibernate - TableView绑定

时间:2016-02-19 18:14:34

标签: java hibernate javafx

我正在尝试在我的项目中使用Hibernate。我有绑定到DB表的类。该表中很少有列与其他表有关系(因为主类中有大量数据)。一切正常。但我不知道如何将其正确绑定到TableView。

@FXML TableView<ClassExample> ExampleTableView;
@FXML TableColumn<ClassExample, Integer> tableViewColumnID;
@FXML TableColumn<ClassExample2, String> tableViewColumnString;

tableViewColumnID.setCellValueFactory(new PropertyValueFactory<ClassExample,Integer>("idZap"));
tableViewColumnString.setCellValueFactory(new PropertyValueFactory<ClassExample2, String>("INFO"));

对于第一列,一切正常。但是如何绑定ClassExample2.getINFO(Column&#34; INFO&#34;),这是ClassExample的一部分?

我试过这个并且它有效 - 但是我可以用lambda做吗?:

tableViewColumnString.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getClassExample2().getINFO()));

1 个答案:

答案 0 :(得分:1)

您无法使用PropertyValueFactory访问属性&#34;的属性,因此您必须以某种方式提供自己的Callback<CellDataFeatures<ClassExample>, ObservableValue<String>>实现。没有要求使用lambda表达式,但它比同等的匿名内部类更简洁:

tableViewColumnString.setCellValueFactory(new Callback<CellDataFeatures<ClassExample>, ObservableValue<String>>() {
    @Override
    public ObservableValue<String> call(CellDataFeatures<ClassExample> cellData) {
       return new ReadOnlyStringWrapper(cellData.getValue().getClassExample2().getINFO());
    };
});