Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

subquery orderby limit 1 didn't work #2780

Closed
jijoungsoo opened this issue Feb 25, 2021 · 1 comment
Closed

subquery orderby limit 1 didn't work #2780

jijoungsoo opened this issue Feb 25, 2021 · 1 comment
Labels

Comments

@jijoungsoo
Copy link

jijoungsoo commented Feb 25, 2021

Observed vs. expected behavior

NumberPath<Long> cnt = Expressions.numberPath(Long.class, "cnt");
	JPAQuery<Tuple>  c=  qf.select(
		QCmEmlSnd.cmEmlSnd.sndSeq,
		QCmEmlSnd.cmEmlSnd.ttl,
		QCmEmlSnd.cmEmlSnd.cntnt,
		QCmEmlSnd.cmEmlSnd.sndrNm,
		QCmEmlSnd.cmEmlSnd.sndrAddr,
		QCmEmlSnd.cmEmlSnd.sndStatusCd,
		QCmEmlSnd.cmEmlSnd.sndTypeCd,
		QCmEmlSnd.cmEmlSnd.sndDtm,
		QCmEmlSnd.cmEmlSnd.sndCmplDtm,
		QCmEmlSnd.cmEmlSnd.crtDtm,
		QCmEmlSnd.cmEmlSnd.crtUsrNo,
		QCmEmlSnd.cmEmlSnd.crtDtm,
		QCmEmlSnd.cmEmlSnd.updtUsrNo
		,ExpressionUtils.as(				
			JPAExpressions.select(QCmEmlSndRcv.cmEmlSndRcv.count())
					.from(QCmEmlSndRcv.cmEmlSndRcv)
					.where(QCmEmlSndRcv.cmEmlSndRcv.orfCmEmlSnd.eq(QCmEmlSnd.cmEmlSnd)),
			"rcv_cnt")
		,ExpressionUtils.as(
			JPAExpressions.select(QCmEmlSndRcv.cmEmlSndRcv.rcvNm)
					.from(QCmEmlSndRcv.cmEmlSndRcv)
					.where(QCmEmlSndRcv.cmEmlSndRcv.orfCmEmlSnd.eq(QCmEmlSnd.cmEmlSnd))
					.orderBy(QCmEmlSndRcv.cmEmlSndRcv.rcvSeq.asc())
					**.limit(1)**
					,"rcv_nm")
		,ExpressionUtils.as(			
			JPAExpressions.select(QCmEmlSndRcv.cmEmlSndRcv.rcvAddr)
					.from(QCmEmlSndRcv.cmEmlSndRcv)
					.where(QCmEmlSndRcv.cmEmlSndRcv.orfCmEmlSnd.eq(QCmEmlSnd.cmEmlSnd))
					.orderBy(QCmEmlSndRcv.cmEmlSndRcv.rcvSeq.asc())
					**.limit(1)**
					,"rcv_addr")
					
	)
	.from(QCmEmlSnd.cmEmlSnd)
	.orderBy(QCmEmlSnd.cmEmlSnd.sndSeq.desc());
	List<Tuple> al =  c.fetch();

I expected

        (select
            cmemlsndrc3_.rcv_addr
        from
            tb_cm_eml_snd_rcv cmemlsndrc3_
        where
            cmemlsndrc3_.snd_seq=cmemlsnd0_.snd_seq
        order by
            cmemlsndrc3_.rcv_seq asc  **limit 1** ) as col_15_0_

BUT run..

        (select
            cmemlsndrc3_.rcv_addr
        from
            tb_cm_eml_snd_rcv cmemlsndrc3_
        where
            cmemlsndrc3_.snd_seq=cmemlsnd0_.snd_seq
        order by
            cmemlsndrc3_.rcv_seq asc ) as col_15_0_

Steps to reproduce

Environment

Querydsl version: 4.4.0

Querydsl module: 4.4.0

Database: postgresql

JDK: jdk 1.5

@jijoungsoo jijoungsoo added the bug label Feb 25, 2021
@jwgmeligmeyling
Copy link
Member

Please provide a reproducer test case, or else minimally (1) the ORM (and version used) to run the JPQL query against (2) the output of the serialized query:

JPQLSerializer serializer = new JPQLSerializer(JPQLTemplates.DEFAULT);
serializer.serialize(query.getMetadata(), false, null);
return serializer.toString();

@querydsl querydsl locked and limited conversation to collaborators Jun 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants