Спецификация Spring Data JPA для отношений OneToMany ⇐ JAVA
Спецификация Spring Data JPA для отношений OneToMany
У меня возникла проблема с получением категорий объектов списка с использованием спецификаций JPA данных Spring. Мне нужно получить все категории с их рецептами, где Recipe.dateModified больше некоторой даты. Я не знаю, как создать свой Predicate, который бы заполнял Collection в каждой категории только теми рецептами, которые старше этой даты.
@Entity общественный класс Категория { частный внутренний идентификатор; частное имя строки; @OneToMany(mappedBy = "категории") рецепты частной коллекции; } @Сущность рецепт публичного класса { частный внутренний идентификатор; частное имя строки; частная отметка времени dateModified; } В CategoryService я получаю List, используя спецификацию:
@Service общественный класс CategoryService { @Autowired частная категорияRepository CategoryRepository; общедоступный список findAll (Дата дата) { вернуть категориюRepository.findAll(where(byDateModified(date))); } } Я бы написал такую спецификацию, но это не работает.
публичный класс RecipeSpec { общедоступная статическая спецификация byDateModified (Дата дата) { возврат (корень, запрос, построитель) -> { окончательный рецепт Join = root.join(Category_.recipes, JoinType.LEFT); return builder.greaterThan(recipe.get(Recipe_.dateModified), date); }; } }
У меня возникла проблема с получением категорий объектов списка с использованием спецификаций JPA данных Spring. Мне нужно получить все категории с их рецептами, где Recipe.dateModified больше некоторой даты. Я не знаю, как создать свой Predicate, который бы заполнял Collection в каждой категории только теми рецептами, которые старше этой даты.
@Entity общественный класс Категория { частный внутренний идентификатор; частное имя строки; @OneToMany(mappedBy = "категории") рецепты частной коллекции; } @Сущность рецепт публичного класса { частный внутренний идентификатор; частное имя строки; частная отметка времени dateModified; } В CategoryService я получаю List, используя спецификацию:
@Service общественный класс CategoryService { @Autowired частная категорияRepository CategoryRepository; общедоступный список findAll (Дата дата) { вернуть категориюRepository.findAll(where(byDateModified(date))); } } Я бы написал такую спецификацию, но это не работает.
публичный класс RecipeSpec { общедоступная статическая спецификация byDateModified (Дата дата) { возврат (корень, запрос, построитель) -> { окончательный рецепт Join = root.join(Category_.recipes, JoinType.LEFT); return builder.greaterThan(recipe.get(Recipe_.dateModified), date); }; } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сортировка объекта и его вложенной коллекции @OneToMany Spring Data JPA с Pageable
Anonymous » » в форуме JAVA - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-