JPA / Hibernate并搞砸了命名参数

时间:2010-04-26 13:58:12

标签: hibernate jpa prepared-statement jpql

我的简单查询在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中已知的bug,这会弄乱预处理语句参数。所以在我的情况下,父母和密钥是混合的。

除了原生查询之外的任何解决方案的建议?

0 个答案:

没有答案