是否有可能對JPA查詢中的子查詢施加LIMIT限制?如何對JPA查詢的子查詢強加LIMIT?
我在純SQL
select * from ipinfo
where RangeEnd < (select RangeStart from ipinfo where RangeStart >= 1537022421 order by RangeStart asc limit 1) and (1537022421 <= RangeEnd)
ORDER BY RangeEnd desc
limit 1
以下查詢直接將其轉換爲JPQL我不得不像
select obj from IpInfo obj
where obj.rangeEnd < (select obj2.rangeStart from IpInfo obj2 where obj2.rangeStart >= ?1 order by obj2.rangeStart asc limit 1) and (?1 <= obj.rangeEnd)
ORDER BY obj.rangeEnd desc
limit 1
既然不能在JPQL使用LIMIT我不得不使用setMaxResults(1)
就可以了。但是,子查詢呢?
更新:
我決定@NamedNativeQuery
去,但現在它的具體的DB-代碼。如果你們可以建議純粹的JPA解決方案,我會非常感激。
地獄啊!我沒有想到'min'。非常感謝你! – expert
這很好,但我真的很想回答原來的問題.. – Amalgovinus