首页 > 解决方案 > 如何将 where 子句添加到具有子查询的查询中?

问题描述

这里有查询:

Subquery<PreferenceGroup> sq = query.subquery(PreferenceGroup.class);
            Root<Preference> subroot = sq.from(Preference.class);
            Join<Preference, PreferenceGroup> sqEmp = subroot.join("preferenceGroup");
            sq.select(sqEmp).where(builder.equal(subroot.get("key"),
                    prefKey));

生成:

Hibernate: select preference0_.id as id1_1_, preference0_.key as key2_1_, preference0_.user_id as user_id3_1_ from preference_group preference0_ where preference0_.id in (select preference2_.id from preference preference1_ inner join preference_group preference2_ on preference1_.preference_group_id=preference2_.id where preference1_.key=?)

这没关系,但我还想在外部 select 语句中再添加一个 where 子句。这个怎么做?所以应该是^ ...在哪里preference0_.key=?和preference0_.id(选择p​​reference2_...)

标签: springhibernatejpaspring-data-jpahibernate-criteria

解决方案


推荐阅读