是否可以对关联数组运行“MEMBER OF”查询?如果是这样,语法是什么样的?明显的解决方法是使用本机查询,但由于所有连接等,这会变得非常混乱。我想测试地图的键集、值集合或条目集中是否存在对象。也许像下面这样:
SELECT p FROM Person p WHERE 'home' MEMBER OF p.phoneNumbers.keySet
SELECT p FROM Person p WHERE '867-5309' MEMBER OF p.phoneNumbers.values
SELECT p FROM Person p WHERE {'home' -> '867-5309'} MEMBER OF p.phoneNumbers
与提供者无关的代码可能要求过高; Eclipselink 支持这个吗?
JPQL 有一个名为index()
这对于获取索引很有用@OrderColumn
列表。正如您自己所说,映射也称为关联数组,映射键对应于数组索引。所以没有什么可以阻止index()
返回地图条目的键。
此查询在休眠状态下完美运行:
SELECT p FROM Person p, in (p.phoneNumbers) number
WHERE number = '867-5309' AND index(number) = 'home'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)