Witam, piszę aplikację w javafx, wykorzystując bazę h2. Wykorzystuję wzorzec projektowy mvc.
W aplikacji mam VisitMainController, który posiada dostęp do drugiego kontrolera SelectProductsController.
Do kontrolerów jest wspólny model VisitDataModel.
W kontrolerze VisitMainController wywołuję metodę zapisu wizyty, poprzedza ją metoda zapisu wyboru produktów(wywołana w SelectProductsController). W modelu wizyty znajduje się klucz obcy do wyboru produktów.
Obie metody znajdują się VisitDataModel. Obie metody wywołuję pod jednym przyciskiem.
Wszystkie potrzebne elementy do zapisu wyboru produktów są zbindowane w SelectProductsController.
Jak przypisać id_wybór_produktu do wizyty.
Inne elementy przypisuję w następujący sposób:
comboBoxPurposeVisit.valueProperty().bindBidirectional(this.visitDataModel.getVisitDataFxObjectProperty().celWizytyFxProperty());
dataPickerDateVisit.valueProperty().bindBidirectional(this.visitDataModel.getVisitDataFxObjectProperty().dataBadaniaProperty());
W kolejnym przypadku wykorzystuję listenera w innym widoku i kontrolerze:
this.tableViewKlienci.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
buttonAddCustomerVisit.setOnAction(actionEvent -> {

            FXMLLoader loader = FxmlUtils.getLoader("/fxml/NewVisitMainScreen.fxml");
            Scene scene = null;
            try {
                scene = new Scene(loader.load());
            } catch (IOException e) {
                DialogsUtils.errorDialog(e.getMessage());
            }
            VisitMainController controller = loader.getController();
            controller.getCustomerDataModel().setCustomerDataFxObjectPropertyVisit(newValue);
            controller.initBindings();
            Stage stage = new Stage();
            stage.setScene(scene);
            stage.setTitle("Nowa wizyta");
            stage.initModality(Modality.APPLICATION_MODAL);
            stage.showAndWait();

        });
    });

a w VisitMainController ustawiam klucz obcy w taki sposób:
visitDataModel.getVisitDataFxObjectProperty().setKlientFx(this.getCustomerDataModel().getCustomerDataFxObjectPropertyVisit());

Proszę o jakąś podpowiedź.