Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 连接映射并在HQL中引用其键/值_Hibernate_Dictionary_Hql - Fatal编程技术网

Hibernate 连接映射并在HQL中引用其键/值

Hibernate 连接映射并在HQL中引用其键/值,hibernate,dictionary,hql,Hibernate,Dictionary,Hql,假设我有一张地图: 我如何创建一个HQL,意思是“选择映射键id==:foo和映射值==:bar的实体” 我可以使用从相册中选择相册加入相册。externalIds id 但我该如何引用ids的键和值呢? ids.key.id=:foo和ids.value=:bar不起作用,hibernate doc对此主题保持沉默 不起作用的天真方法: 选择相册 从相册 加入相册。外部ID外部ID 其中索引(externalId).id=:foo和externalId=:bar 及 选择相册 从相册 加

假设我有一张地图:


我如何创建一个HQL,意思是“选择映射键id==:foo和映射值==:bar的实体”

我可以使用
从相册中选择相册加入相册。externalIds id
但我该如何引用ids的键和值呢? ids.key.id=:foo和ids.value=:bar不起作用,hibernate doc对此主题保持沉默

不起作用的天真方法:

选择相册
从相册
加入相册。外部ID外部ID
其中索引(externalId).id=:foo和externalId=:bar

选择相册
从相册
加入相册。外部ID外部ID
连接索引(外部ID)主要
其中major.id=:foo和externalId=:bar

我认为您的查询应该如下所示:

select album from Album album where album.externalIds['foo'] = 'bar'
希望有帮助


Vincent Giguère

在查询“从相册中选择相册,相册中的相册。外部id['foo']='bar'”,foo和bar应该是对象而不是对象的id,那么只有此查询可以工作。当我需要内部联接时,它对我有效。但当我需要左连接时,似乎没有解决方案。(bwe,“where album.externalIds['foo1']='bar'或album.externalIds['foo2']='bar'”,并使用“isNull(album.externalIds['foo1'],''”)没有帮助,因为生成的SQL执行内部联接等效)