Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA限制子查询结果(Jhipster)_Java_Jpa_Jhipster - Fatal编程技术网

Java JPA限制子查询结果(Jhipster)

Java JPA限制子查询结果(Jhipster),java,jpa,jhipster,Java,Jpa,Jhipster,我需要把 order by tabB.id desc limit 1 在子查询中,因为子查询必须返回单个值 Long filter= Long.parseLong(value); return (root, query, builder) -> { Subquery<B> subquery = query.subquery(B.class); Root<B> subqueryRoot

我需要把

order by tabB.id desc
limit 1
在子查询中,因为子查询必须返回单个值

        Long filter= Long.parseLong(value);
        return (root, query, builder) -> {
            Subquery<B> subquery = query.subquery(B.class);
            Root<B> subqueryRoot = subquery.from(B.class);
            Join<B,C> ss = subqueryRoot.join(B_.idC);
            subquery.correlate(ss);
            subquery.select(subqueryRoot.get(B_.ID_C));
            subquery.where(
                    builder.equal(subqueryRoot.get(B_.idA),root.get(A_.id))
                    );
            subquery.
            builder.max(subqueryRoot.get(B_.id)); //first try
            builder.desc(subqueryRoot.get(B_.id)); //another try
            return builder.equal(subquery, filter);
        };
是否有方法获取子查询中的第一个元素以便应用于where查询

我的情况与此相似

但我有一个不超过id的等式:

SELECT q.id_project FROM status q
WHERE q.status_name like 'new'
AND q.id IN (
   SELECT TOP 1 sq.id from status sq
   WHERE q.id_project = sq.id_project 
   ORDER BY sq.id DESC )
我的情况是:

SELECT A.id_project FROM tabA A
WHERE A.col like 'alpha'
AND 'centauri' = (
   SELECT TOP 1 B.colAA from tabB B
   WHERE A.id_project = B.id_project 
   ORDER BY B.id DESC )

子查询,可能是
select(Integer size)
limit(Integer size)
。子查询没有这两种方法。一种选择是使用子查询的子查询,但它并不漂亮。还有别的办法吗?
SELECT A.id_project FROM tabA A
WHERE A.col like 'alpha'
AND 'centauri' = (
   SELECT TOP 1 B.colAA from tabB B
   WHERE A.id_project = B.id_project 
   ORDER BY B.id DESC )