Advertisement
Georgi_Benchev

Untitled

Jan 22nd, 2025
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. @Override
  2.     public List<Beer> getAll(FilterOptions filterOptions) {
  3.         try (Session session = sessionFactory.openSession()) {
  4.             StringBuilder queryString = new StringBuilder("From Beer");
  5.             List<String> filters = new ArrayList<>();
  6.             Map<String, Object> params = new HashMap<>();
  7.  
  8.             filterOptions.getName().ifPresent(value -> {
  9.                 filters.add("name like :name");
  10.                 params.put("name", String.format("%%%s%%", value));
  11.             });
  12.  
  13.             filterOptions.getMinAbv().ifPresent(value -> {
  14.                 filters.add("abv >= :minAbv");
  15.                 params.put("minAbv", value);
  16.             });
  17.  
  18.             filterOptions.getMaxAbv().ifPresent(value -> {
  19.                 filters.add("abv <= :maxAbv");
  20.                 params.put("maxAbv", value);
  21.             });
  22.  
  23.             filterOptions.getStyleId().ifPresent(value -> {
  24.                 filters.add("style.id = :styleId");
  25.                 params.put("styleId", value);
  26.             });
  27.  
  28.             if (!filters.isEmpty()) {
  29.                 queryString.append(" where ").append(String.join(" and ", filters));
  30.             }
  31.             Query<Beer> query = session.createQuery(queryString.toString(), Beer.class);
  32.             query.setProperties(params);
  33.             return query.list();
  34.         }
  35.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement