2016-02-19 80 views
0

我想在我的項目中使用Hibernate。我有綁定到數據庫表的類。該表中很少有列與其他表有關係(因爲主類中的數據量很大)。一切正常。但我不知道如何正確綁定到TableView。休眠 - 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「INFO」),它是ClassExample的一部分?

我已經試過這和它的作品 - 但我能做到這一點wthout拉姆達?:

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

回答

1

您不能使用PropertyValueFactory訪問「屬性的財產」,所以你必須提供自己的以某種方式實施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()); 
    }; 
}); 
+0

感謝您的解釋。這就是我一直在尋找的:) – Thulion