Union in JPA query - from the same table

前端 未结 2 1490
渐次进展
渐次进展 2021-01-19 17:51

I have a requirement where I need to restrict number of records returned from a table for a particular flag and all records for the other flag value.

For example:

相关标签:
2条回答
  • 2021-01-19 18:07

    JPA does not support UNION, but if you use EclipseLink, UNION is supported in JPQL. Also the COLUMN operator can be used to access special columns like rownum.

    See, http://java-persistence-performance.blogspot.com/2012/05/jpql-vs-sql-have-both-with-eclipselink.html

    0 讨论(0)
  • 2021-01-19 18:08

    No, this is not possible with JPQL, because it does not have UNION (ALL). Additionally there is no way to limit amount of rows returned in query string itself with rownum, but that is done via setMaxResults.

    In many situations

    • executing two queries,
    • limiting number of results in first one with setMaxResults, and
    • discarding duplicates and combining results of both queries in Java

    is viable solution.

    0 讨论(0)
提交回复
热议问题