Hibernate 在where子句中使用参数的HQL

Hibernate 在where子句中使用参数的HQL,hibernate,grails,hql,Hibernate,Grails,Hql,我目前正在尝试执行类似以下内容的HQL查询: ["friend1", "friend2", "friend3"].each { friend -> Query q = sessionFactory.currentSession.createQuery( """select p.screenName, count(*) from Person p where (p.:thisfriend.enem

我目前正在尝试执行类似以下内容的HQL查询:

["friend1", "friend2", "friend3"].each { friend ->
        Query q = sessionFactory.currentSession.createQuery(
                """select p.screenName, count(*) from Person p
                        where (p.:thisfriend.enemies = :true)
                        group by p.screenName""")
                .setParameter("thisfriend", friend)

(每个人都有3个“朋友”位置,其中一些可能是“敌人”),很明显,它对“thisfriend”的在线参数化感到不安。这里有没有巧妙的方法,或者我需要3个单独的查询?

您不能对字段名使用参数。使用string.format或条件