gpt4 book ai didi

java - QueryDsl - 根据键过滤 map

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:15 26 4
gpt4 key购买 nike

我的 hibenrate 实体类中有以下属性:

@MapKeyJoinColumn(name = "language_code")
@LazyCollection(LazyCollectionOption.EXTRA)
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "text_translations", joinColumns = @JoinColumn(name = "text_id"))
private Map<Language, String> translations = new HashMap<>();

现在我想查询这个实体并按用户的语言(即按 map 的键)过滤 map 的内容。我有以下加入我的查询:

StringPath titleTran = new StringPath("title_tran");
from(entity).
.leftJoin(entity.translations, titleTran).fetch().where(?mapKey?.eq(userLanguage));

我需要的是?mapKey?通过 titleTran 路径的语言路径。这在 QueryDsl 中有可能吗?

最佳答案

如果要搜索给定的 Map 键,可以使用以下 HQL 查询:

select me
from MyEntity me
join me.translations tr
where
index(tr) = :lang

或使用 JPQL:

select me
from MyEntity me
join me.translations tr
where
key(tr) = :lang

关于java - QueryDsl - 根据键过滤 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com