JPA 子查询问题
Issue with JPA Sub Query
我开始使用 QueryDsl 4
我遇到了这个错误
java.lang.UnsupportedOperationException
at com.querydsl.jpa.JPASubQuery.iterate(JPASubQuery.java:72)
at com.querydsl.core.support.FetchableQueryBase.fetch(FetchableQueryBase.java:46)
at dao.SearchProjetDao.getListProjetsQueryDsl(SearchProjetDao.java:108)
at controllers.ProjetRest.getListProjetsQueryDsl(ProjetRest.java:82)
当我尝试这个子查询时
QProjet prj = new QProjet("prj");
...
BooleanBuilder where_loc = new BooleanBuilder();
if( bean.commune != null ){
QLocalisation loc_2 = new QLocalisation("loc_2");
where_loc.and(prj.id.in(
JPAExpressions.select(loc_2.projet.id).from(loc_2)
.where(loc_2.commune.id.eq(bean.commune))
.fetch()
));
}
...
我曾经在 QueryDsl 3
中使用 JPASubQuery
但它在版本 4
中不再存在
你放错地方了。
where_loc.and(prj.id.in(
JPAExpressions.select(loc_2.projet.id).from(loc_2)
.where(loc_2.commune.id.eq(bean.commune))
// .fetch() <--- Remove
));
in 期望(除其他外)
SubQueryExpression
- 修改代码选择的重载
Collection
- 错误代码选择的重载。 (我假设这些应该是常量)
我开始使用 QueryDsl 4
我遇到了这个错误
java.lang.UnsupportedOperationException
at com.querydsl.jpa.JPASubQuery.iterate(JPASubQuery.java:72)
at com.querydsl.core.support.FetchableQueryBase.fetch(FetchableQueryBase.java:46)
at dao.SearchProjetDao.getListProjetsQueryDsl(SearchProjetDao.java:108)
at controllers.ProjetRest.getListProjetsQueryDsl(ProjetRest.java:82)
当我尝试这个子查询时
QProjet prj = new QProjet("prj");
...
BooleanBuilder where_loc = new BooleanBuilder();
if( bean.commune != null ){
QLocalisation loc_2 = new QLocalisation("loc_2");
where_loc.and(prj.id.in(
JPAExpressions.select(loc_2.projet.id).from(loc_2)
.where(loc_2.commune.id.eq(bean.commune))
.fetch()
));
}
...
我曾经在 QueryDsl 3
中使用 JPASubQuery
但它在版本 4
你放错地方了。
where_loc.and(prj.id.in(
JPAExpressions.select(loc_2.projet.id).from(loc_2)
.where(loc_2.commune.id.eq(bean.commune))
// .fetch() <--- Remove
));
in 期望(除其他外)
SubQueryExpression
- 修改代码选择的重载Collection
- 错误代码选择的重载。 (我假设这些应该是常量)