JPA子查询问题

时间:2019-04-24 09:34:19

标签: hibernate jpa querydsl

我开始使用 �-; �-� �-� 0 0 T T@ T@ D D P�td 8�5 8�u 8�u |� |� Q�td R�td �-; �-� �-� P P /lib64/ld-linux-x86-64.so.2 GNU GNU ���?��&� ,但出现此错误

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() )); } ... 中使用JPASubQuery,但是在版本4中不再存在

1 个答案:

答案 0 :(得分:1)

您将提取操作放置在错误的位置。

ERR_CONTENT_LENGTH_MISMATCH

期望(彼此之间)

  • 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 )); -修改后的代码选择的重载
  • SubQueryExpression-错误代码选择的重载。 (我认为这些应该是常量)

请参见Subquery Examples in QueryDls4 doc