Я пытаюсь перенести некоторые атрибуты класса из List<Entity>
в Map<String, Entity>
Например, моя сущность имеет следующую Карту (ранее categoryContents
была List<CategoryContent>
):
@OneToMany(cascade = CascadeType.ALL, mappedBy = "category", fetch = FetchType.EAGER)
@MapKey(name = "language")
private Map<String, CategoryContent> categoryContents;
В моем хранилище данных Spring я пытаюсь настроить пользовательские привязки. Ранее, когда у меня был список, моя настройка была следующей:
public interface PublicationCategoryRepository extends JpaRepository<Category, Integer>, QueryDslPredicateExecutor<Category>, QuerydslBinderCustomizer<QCategory> {
@Override
default void customize(final QuerydslBindings bindings, final QCategory category) {
bindings.bind(String.class).first(
(StringPath path, String value) -> path.containsIgnoreCase(value));
bindings.bind(category.categoryContents.any().name).first((path, value) -> category.categoryContents.any().name.containsIgnoreCase(value)
.or(category.description.containsIgnoreCase(value)));
bindings.excluding(category.userCategories);
}
}
Связывание любого атрибута categoryContents.name (из класса CategoryContent). Можно ли применить эту настройку с помощью карты?
MapPath не имеет метода для запроса какого-либо значения с карты.
Любая помощь будет высоко ценится.