Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public List<Beer> getAll(FilterOptions filterOptions) {
- try (Session session = sessionFactory.openSession()) {
- StringBuilder queryString = new StringBuilder("From Beer");
- List<String> filters = new ArrayList<>();
- Map<String, Object> params = new HashMap<>();
- filterOptions.getName().ifPresent(value -> {
- filters.add("name like :name");
- params.put("name", String.format("%%%s%%", value));
- });
- filterOptions.getMinAbv().ifPresent(value -> {
- filters.add("abv >= :minAbv");
- params.put("minAbv", value);
- });
- filterOptions.getMaxAbv().ifPresent(value -> {
- filters.add("abv <= :maxAbv");
- params.put("maxAbv", value);
- });
- filterOptions.getStyleId().ifPresent(value -> {
- filters.add("style.id = :styleId");
- params.put("styleId", value);
- });
- if (!filters.isEmpty()) {
- queryString.append(" where ").append(String.join(" and ", filters));
- }
- Query<Beer> query = session.createQuery(queryString.toString(), Beer.class);
- query.setProperties(params);
- return query.list();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement