Dzień dobry, jako że nie znam jeszcze dobrze typów generycznych w Javie to prosiłbym o pomoc w poprawnym napisaniu metody. Generalnie chodzi o metodę queryForMatching z ORMlite.
W klasie obsługującej DAO:
public <T extends BaseModel, I> List<T> queryForMatching(Class<T> cls, ????) throws ApplicationException {
try {
Dao<T, I> dao = getDao(cls);
return dao.queryForMatching(????);
} catch (SQLException e) {}
W klasie używającej tej metody muszę stworzyć listę, która zawiera pobiera wartości z rekordów bazy danych. Porównuje wybraną wartość z pierwszego comboboxa i tworzy listę dla drugiego comboboxa z rekordów w których występuje wybrana wcześniej wartość.
public void initializeFilteredModelsList() throws ApplicationException {
CarBrandDao carBrandDao=new CarBrandDao(DBManager.getConnectionSource());
CarBrand tempCarBrand = carBrandDao.findById(CarBrand.class, this.getModelsFxObjectProperty().getBrandsFXObjectProperty().getId());
//tempCarBrand zwraca numer ID pod jakim jest zapisany w bazie
CarModelDao carModelDao = new CarModelDao(DBManager.getConnectionSource());
List<CarModel> listOfFilteredModels = carModelDao.queryForMatching(CarModel.class,??????);
modelsList.clear();
listOfFilteredModels.forEach((c) -> {
ModelsFX modelsFX = new ModelsFX();
modelsFX.setId(c.getId());
modelsFX.setModel(c.getModel());
modelsFX.setBrandsFXObjectProperty(c.getBrand().setBrand());
});
Czy być może queryForEq byłoby lepszym wyborem?
Pozdrawiam