我的简单查询在 JPQL 上如下所示:
SELECT COUNT(r) FROM org.domain.Resource r WHERE r._parent = :parent AND r._metadata[:metadataKey] is not null
但是 Hibernate SQL 输出看起来像这样(对于 H2 和 MySQL):
select
count(resource0_.id) as col_0_0_
from
resources resource0_,
resource_metadata metadata1_
where
resource0_.id=metadata1_.resource_id
and metadata1_.datum_key = ?
and resource0_.parent_id=?
and (
metadata1_.datum_value is not null
) limit ?
这里的问题是 Hibernate 中的已知错误,它弄乱了准备好的语句参数。所以在我的情况下,父母和钥匙是混合的。
除了本机查询之外,还有什么建议可以解决吗?