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执行内部联接等效)