package Ġcom . line corp . kotlin jd sl . query dsl Ċ Ċ import Ġcom . line corp . kotlin jd sl . query . Criteria Delete Query Spec Ċ import Ġcom . line corp . kotlin jd sl . query . Criteria Query Spec Ċ import Ġcom . line corp . kotlin jd sl . query . Criteria Update Query Spec Ċ import Ġcom . line corp . kotlin jd sl . query . Sub query Spec Ċ import Ġcom . line corp . kotlin jd sl . query . clause . from . From Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . from . Join Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . from . Simple Associated Join Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . groupby . Criteria Query GroupBy Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . groupby . GroupBy Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . groupby . Sub query GroupBy Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . having . Criteria Query Having Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . having . Having Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . having . Sub query Having Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . hint . Jpa Query Hint Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . hint . Jpa Query Hint Clause Impl Ċ import Ġcom . line corp . kotlin jd sl . query . clause . hint . Sql Query Hint Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . limit . Limit Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . limit . Query Limit Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . orderby . Criteria Query OrderBy Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . orderby . OrderBy Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . select . Criteria Query Select Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . select . Multi Select Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . select . Single Select Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . select . Sub query Select Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . set . Set Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . where . Criteria Query Where Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . where . Sub query Where Clause Ċ import Ġcom . line corp . kotlin jd sl . query . clause . where . Where Clause Ċ import Ġcom . line corp . kotlin jd sl . query . spec .* Ċ import Ġcom . line corp . kotlin jd sl . query . spec . expression . Column Spec Ċ import Ġcom . line corp . kotlin jd sl . query . spec . expression . Entity Spec Ċ import Ġcom . line corp . kotlin jd sl . query . spec . expression . Expression Spec Ċ import Ġcom . line corp . kotlin jd sl . query . spec . predicate . And Spec Ċ import Ġcom . line corp . kotlin jd sl . query . spec . predicate . Predicate Spec Ċ import Ġcom . line corp . kotlin jd sl . query dsl . from . Relation Ċ import Ġcom . line corp . kotlin jd sl . query dsl . hint . Sql Query Hint Clause Provider Ċ import Ġjavax . persistence . Query Ċ import Ġjavax . persistence . Typed Query Ċ import Ġjavax . persistence . criteria . Join Type Ċ Ċ /** Ċ Ġ* ĠInternal ĠDSL ĠImplementation Ċ Ġ* Ċ Ġ* ĠDon 't Ġuse Ġthis Ġdirectly Ġbecause Ġit 's Ġan Ġ** INTERNAL ** Ġclass . Ċ Ġ* ĠIt Ġdoes Ġnot Ġsupport Ġbackward Ġcompatibility . Ċ Ġ* ĠThis Ġclass Ġshould Ġbe Ġused Ġwith Ġthe Ġunderstanding Ġthat Ġit Ġis Ġnot Ġthread Ġsafe Ġand Ġtherefore Ġnot Ġsuitable Ġfor Ġparallel Ġprocessing . Ċ Ġ*/ Ċ open Ġclass ĠQuery Dsl Impl < T >( ĊĠĠĠ Ġprivate Ġval ĠreturnType : ĠClass < T >, Ċ ) Ġ: ĠCriteria Query Dsl < T >, ĠSub query Dsl < T >, ĠCriteria Update Query Dsl , ĠCriteria Delete Query Dsl Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġsingle Select Clause : ĠSingle Select Clause < T >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmulti Select Clause : ĠMulti Select Clause < T >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfrom Clause : ĠFrom Clause < *> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġjoins : ĠMutable List < Join Spec <* >> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġwh eres : ĠMutable List < Predicate Spec >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgroup By s : ĠMutable List < Expression Spec <* >> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġh avings : ĠMutable List < Predicate Spec >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠorderBy s : ĠMutable List < Order Spec >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoffset : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmax Results : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsql Hints : ĠMutable List < String >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġj pa Hints : ĠMutable Map < String , ĠAny >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġparams : ĠMutable Map < Column Spec <* >, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġlazy Join s () Ġ= Ġ( join s Ġ?: Ġmutable ListOf < Join Spec <* >> (). apply Ġ{ Ġjoins Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy Wh eres () Ġ= Ġ( wh eres Ġ?: Ġmutable ListOf < Predicate Spec >(). apply Ġ{ Ġwh eres Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy GroupBy s () Ġ= Ġ( groupBy s Ġ?: Ġmutable ListOf < Expression Spec <* >> (). apply Ġ{ Ġgroup By s Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy H avings () Ġ= Ġ( hav ings Ġ?: Ġmutable ListOf < Predicate Spec >(). apply Ġ{ Ġh avings Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy OrderBy s () Ġ= Ġ( orderBy s Ġ?: Ġmutable ListOf < Order Spec >(). apply Ġ{ ĠorderBy s Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy Sql Hints () Ġ= Ġ( sql Hints Ġ?: Ġmutable ListOf < String >(). apply Ġ{ Ġsql Hints Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy Jpa Hints () Ġ= Ġ( jpa Hints Ġ?: Ġmutable Map Of < String , ĠAny >(). apply Ġ{ Ġj pa Hints Ġ= Ġthis Ġ}) ĊĠĠĠ Ġprivate Ġfun Ġlazy Params () Ġ= Ġ( params Ġ?: Ġmutable Map Of < Column Spec <* >, ĠAny ?> (). apply Ġ{ Ġparams Ġ= Ġthis Ġ}) ĊĊĠĠĠ Ġoverride Ġfun Ġselect ( distinct : ĠBoolean , Ġexpression : ĠExpression Spec < T >): ĠSingle Select Clause < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle Select Clause ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠreturnType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdistinct Ġ= Ġdistinct , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression Ġ= Ġexpression , ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġsingle Select Clause Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġselect ( distinct : ĠBoolean , Ġexpressions : ĠList < Expression Spec <* >> ): ĠMulti Select Clause < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMulti Select Clause ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠreturnType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdistinct Ġ= Ġdistinct , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpressions Ġ= Ġexpressions , ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġmulti Select Clause Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfrom ( entity : ĠEntity Spec <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfrom Clause Ġ= ĠFrom Clause ( entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T , ĠR > Ġjoin ( left : ĠEntity Spec < T >, Ġright : ĠEntity Spec < R >, Ġrelation : ĠRelation < T , ĠR ? >, Ġjoin Type : ĠJoin Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Join s (). add ( Simple Join Spec ( left Ġ= Ġleft , Ġright Ġ= Ġright , Ġpath Ġ= Ġrelation . path , Ġjoin Type Ġ= Ġjoin Type )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġjoin ( entity : ĠEntity Spec < T >, Ġpredicate : ĠPredicate Spec ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Join s (). add ( Cross Join Spec ( entity )) ĊĠĠĠĠĠĠĠ Ġlazy Wh eres (). add ( predicate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T , ĠR > Ġassociate ( ĊĠĠĠĠĠĠĠ Ġleft : ĠEntity Spec < T >, ĊĠĠĠĠĠĠĠ Ġright : ĠEntity Spec < R >, ĊĠĠĠĠĠĠĠ Ġrelation : ĠRelation < T , ĠR ? >, ĊĠĠĠĠĠĠĠ Ġjoin Type : ĠJoin Type ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Join s (). add ( Simple Associated Join Spec ( left Ġ= Ġleft , Ġright Ġ= Ġright , Ġpath Ġ= Ġrelation . path )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< P , ĠC Ġ: ĠP > Ġtreat ( ĊĠĠĠĠĠĠĠ Ġroot : ĠColumn Spec <* >, ĊĠĠĠĠĠĠĠ Ġparent : ĠEntity Spec < P >, ĊĠĠĠĠĠĠĠ Ġchild : ĠEntity Spec < C >, ĊĠĠĠĠĠĠĠ Ġparent Join Type : ĠJoin Type ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Join s (). add ( T reat Join Spec ( parent , Ġchild , Ġparent Join Type , Ġroot )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T , ĠR > Ġfetch ( ĊĠĠĠĠĠĠĠ Ġleft : ĠEntity Spec < T >, ĊĠĠĠĠĠĠĠ Ġright : ĠEntity Spec < R >, ĊĠĠĠĠĠĠĠ Ġrelation : ĠRelation < T , ĠR ? >, ĊĠĠĠĠĠĠĠ Ġjoin Type : ĠJoin Type ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Join s (). add ( Fetch Join Spec ( left Ġ= Ġleft , Ġright Ġ= Ġright , Ġpath Ġ= Ġrelation . path , Ġjoin Type Ġ= Ġjoin Type )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwhere ( predicate : ĠPredicate Spec ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Wh eres (). add ( predicate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgroup By ( columns : ĠList < Expression Spec <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy GroupBy s (). addAll ( columns ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhaving ( predicate : ĠPredicate Spec ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy H avings (). add ( predicate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠorderBy ( orders : ĠList < Order Spec >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy OrderBy s (). addAll ( orders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġoffset ( offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . offset Ġ= Ġoffset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmax Results ( max Results : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . max Results Ġ= Ġmax Results ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsql Hints ( hints : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Sql Hints (). addAll ( hints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhints ( hints : ĠMap < String , ĠAny >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Jpa Hints (). put All ( hints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Params ( params : ĠMap < Column Spec <* >, ĠAny ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Params (). put All ( params ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset ( column : ĠColumn Spec <* >, Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Params ()[ column ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Criteria Query Spec (): ĠCriteria Query Spec < T , ĠTyped Query < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCriteria Query Spec Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġ= Ġget Criteria Query Select Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġget From Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjoin Ġ= Ġget Join Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġget Where Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup By Ġ= Ġget GroupBy Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhaving Ġ= Ġget Having Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy Ġ= Ġget OrderBy Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġget Limit Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql Hint Ġ= Ġget Sql Query Hint Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj pa Hint Ġ= Ġget Jpa Query Hint Clause (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Criteria Update Query Spec (): ĠCriteria Update Query Spec < T , ĠQuery > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCriteria Update Query Spec Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Entity Ġ= ĠreturnType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġget From Clause () Ġas ĠFrom Clause < T >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassociate Ġ= Ġget Simple Associated Join Clause Only (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġget Where Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql Hint Ġ= Ġget Sql Query Hint Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj pa Hint Ġ= Ġget Jpa Query Hint Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Ġ= Ġget Set Clause () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Set Clause () Ġ= ĠSet Clause ( params . or Empty ()) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġcreate Criteria Delete Query Spec (): ĠCriteria Delete Query Spec < T , ĠQuery > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCriteria Delete Query Spec Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Entity Ġ= ĠreturnType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġget From Clause () Ġas ĠFrom Clause < T >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassociate Ġ= Ġget Simple Associated Join Clause Only (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġget Where Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql Hint Ġ= Ġget Sql Query Hint Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj pa Hint Ġ= Ġget Jpa Query Hint Clause () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Sub query Spec (): ĠSub query Spec < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSub query Spec Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġ= Ġget Sub query Select Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġget From Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjoin Ġ= Ġget Join Clause DoesNot Have Fetch (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġget Where Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup By Ġ= Ġget GroupBy Clause (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhaving Ġ= Ġget Having Clause (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Criteria Query Select Clause (): ĠCriteria Query Select Clause < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Be ( single Select Clause Ġ!= Ġnull Ġ|| Ġmulti Select Clause Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" There Ġis Ġno Ġselect Ġclause Ġin Ġquery " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsingle Select Clause Ġ?: Ġmulti Select Clause !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Sub query Select Clause (): ĠSub query Select Clause < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Be ( single Select Clause Ġ!= Ġnull ) Ġ{ Ġ" There Ġis Ġno Ġselect Ġclause Ġin Ġquery " Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsingle Select Clause !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget From Clause (): ĠFrom Clause < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Be ( from Clause Ġ!= Ġnull ) Ġ{ Ġ" There Ġis Ġno Ġfrom Ġclause Ġin Ġquery " Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfrom Clause !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Join Clause (): ĠJoin Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJoin Clause ( join s . or Empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Join Clause DoesNot Have Fetch (): ĠJoin Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Be ( join s . or Empty (). filter Is Instance < Fetch Join Spec < *, Ġ* >> (). isEmpty ()) Ġ{ Ġ" This Ġquery Ġdoes Ġnot Ġsupport Ġfetch " Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġget Join Clause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Simple Associated Join Clause Only (): ĠSimple Associated Join Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjoins Ġ= Ġjoins . or Empty () ĊĠĠĠĠĠĠĠ Ġreturn Ġjoins . filter Is Instance < Simple Associated Join Spec < *, Ġ* >> (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmust Be ( it . size Ġ== Ġjoins . size ) Ġ{ Ġ" This Ġquery Ġonly Ġsupport Ġassociate " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Associated Join Clause ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Where Clause (): ĠWhere Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWhere Clause ( wh eres . or Empty (). merge ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget GroupBy Clause (): ĠGroup By Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGroup By Clause ( groupBy s . or Empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Empty GroupBy Clause (): ĠGroup By Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGroup By Clause ( emptyList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget Having Clause (): ĠHaving Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHaving Clause ( hav ings . or Empty (). merge ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Empty Having Clause (): ĠHaving Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHaving Clause ( Predicate Spec . empty ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġget OrderBy Clause (): ĠCriteria Query OrderBy Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOrder By Clause ( orderBy s . or Empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Empty OrderBy Clause (): ĠCriteria Query OrderBy Clause Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOrder By Clause . empty ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġ< Q Ġ: ĠQuery > Ġget Limit Clause (): ĠQuery Limit Clause < Q > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLimit Clause ( offset , Ġmax Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< Q Ġ: ĠQuery > Ġget Empty Limit Clause (): ĠQuery Limit Clause < Q > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLimit Clause . empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< Q Ġ: ĠQuery > Ġget Jpa Query Hint Clause (): ĠJ pa Query Hint Clause < Q > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJ pa Query Hint Clause Impl ( jpa Hints . or Empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprotected Ġfun Ġ< Q Ġ: ĠQuery > Ġget Sql Query Hint Clause (): ĠSql Query Hint Clause < Q > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSql Query Hint Clause Provider . provide ( sql Hints . or Empty ()) Ġas ĠSql Query Hint Clause < Q > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun ĠList < Predicate Spec >. merge (): ĠPredicate Spec Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisEmpty () Ġ-> ĠPredicate Spec . empty ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ== Ġ 1 Ġ-> Ġfirst () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAnd Spec ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġprotected Ġfun Ġmust Be ( condition : ĠBoolean , Ġlazy Message : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! condition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ( lazy Message ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠCriteria Query Spec Impl < T >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġselect : ĠCriteria Query Select Clause < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġfrom : ĠFrom Clause <* >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġjoin : ĠJoin Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġwhere : ĠCriteria Query Where Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġgroup By : ĠCriteria Query GroupBy Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġhaving : ĠCriteria Query Having Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠorderBy : ĠCriteria Query OrderBy Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġlimit : ĠQuery Limit Clause < Typed Query < T >>, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġj pa Hint : ĠJ pa Query Hint Clause < Typed Query < T >>, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsql Hint : ĠSql Query Hint Clause < Typed Query < T >>, ĊĠĠĠ Ġ) Ġ: ĠCriteria Query Spec < T , ĠTyped Query < T >> ĊĊĠĠĠ Ġdata Ġclass ĠCriteria Update Query Spec Impl < T , ĠQ >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtarget Entity : ĠClass < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġfrom : ĠFrom Clause < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġassociate : ĠSimple Associated Join Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġwhere : ĠCriteria Query Where Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġj pa Hint : ĠJ pa Query Hint Clause < Q >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsql Hint : ĠSql Query Hint Clause < Q >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġset : ĠSet Clause ĊĠĠĠ Ġ) Ġ: ĠCriteria Update Query Spec < T , ĠQ > ĊĊĠĠĠ Ġdata Ġclass ĠCriteria Delete Query Spec Impl < T , ĠQ >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtarget Entity : ĠClass < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġfrom : ĠFrom Clause < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġassociate : ĠSimple Associated Join Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġwhere : ĠCriteria Query Where Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġj pa Hint : ĠJ pa Query Hint Clause < Q >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsql Hint : ĠSql Query Hint Clause < Q > ĊĠĠĠ Ġ) Ġ: ĠCriteria Delete Query Spec < T , ĠQ > ĊĊĠĠĠ Ġdata Ġclass ĠSub query Spec Impl < T >( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġselect : ĠSub query Select Clause < T >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġfrom : ĠFrom Clause <* >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġjoin : ĠJoin Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġwhere : ĠSub query Where Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġgroup By : ĠSub query GroupBy Clause , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġhaving : ĠSub query Having Clause ĊĠĠĠ Ġ) Ġ: ĠSub query Spec < T > Ċ } Ċ