Como preencher um TableView com colunas com diferentes Objetos

Estou com duvidas para conseguir passar diversos objetos numa mesma viewer

nessa minha table ele mostra as despesas mas, o campo natureza ali ele ta vindo de outra tabela do banco, como faço pra mostrar o nome ali

No momento estou fazendo assim

@FXML
private TableColumn<Despesa, String> columnValor;

@FXML
private TableColumn<Despesa, LocalDate> columnData;

@FXML
private TableColumn<Despesa, String> columnNome;

@FXML
private TableColumn<Despesa, String> columnNatureza;

@FXML
private TableView<Despesa> tableViewr;

public void initTable() {
columnNome.setCellValueFactory(new PropertyValueFactory<Despesa, String>(“nome”));
columnValor.setCellValueFactory(new PropertyValueFactory<Despesa, String>(“valor”));
columnData.setCellValueFactory(new PropertyValueFactory<Despesa, LocalDate>(“data”));
columnNatureza.setCellValueFactory(new PropertyValueFactory<Despesa, String>(“natureza”);
}
tableViewr.setItems(atualizaTabela1());
}

public ObservableList<Despesa> atualizaTabela1() {
	DAO<Despesa> dao = new DAO<Despesa>(Despesa.class);

	return FXCollections.observableArrayList(dao.obterTodos());
}

tablevier