我正在尝试将某些类属性从List<Entity>
迁移到Map<String, Entity>
例如,我的实体具有以下Map(以前的categoryContents
是List<CategoryContent>
):
@OneToMany(cascade = CascadeType.ALL, mappedBy = "category", fetch = FetchType.EAGER)
@MapKey(name = "language")
private Map<String, CategoryContent> categoryContents;
在我的Spring Data Repository中,我试图配置自定义绑定。以前,当我拥有列表时,我的自定义设置如下:
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没有任何方法可以查询Map中的任何值。
任何帮助将不胜感激。