如何在条件查询中使用MAP的键?
我有一个像这样的 Bean,
Class TestA
{
Map<String,TestB> testBMap;
}
Class TestB
{
String data;
...
}
我想获取 TestA
数据以及地图 testBMap
,其中 key ='test1'
。
我怎样才能使用 Hibernate 来做到这一点?
I have a Bean like this
Class TestA
{
Map<String,TestB> testBMap;
}
Class TestB
{
String data;
...
}
I want to fetch the TestA
data along with the map testBMap
where key ='test1'
.
How can i do this using Hibernate.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
键必须是 TestB 的持久字段之一的值(假设该字段的名称为“foo”),因此此代码应该有效:
The key must be the value of one of the persistent fields of TestB (let's says this field is names "foo"), so this code should work :
就我而言,这确实工作得很好:
映射如下:
国家/地区具有 LocalizedText 类型的属性名称(实体)
LocalizedText
包含Map
翻译,其中键是语言代码,值是与该语言对应的国家/地区名称。所以我必须为翻译创建别名,然后在
eq()
中使用“magic”后缀“.indices”。In my case this did work fine:
The mapping is like this:
Country has property name which is of type LocalizedText (an entity)
LocalizedText
containsMap<String, String>
translations where key is language code and value is country name that corresponds to that language.So i had to create alias for translations and then user "magic" postfix ".indices" in
eq()
.直到Hibernate实现了JPA的
key()
函数(参见HHH- 5396),您可以使用index()
函数:Until Hibernate implements JPA's
key()
function (see HHH-5396), you can use theindex()
function:这对我有用:
This works for me: