@@ -1645,6 +1645,7 @@ private void createCriteriaFinder(
16451645 checkFinderParameter (entity , parameter );
16461646 }
16471647 }
1648+ warnAboutMissingOrder ( method );
16481649 putMember ( methodKey ,
16491650 new CriteriaFinderMethod (
16501651 this , method ,
@@ -1911,6 +1912,7 @@ private void createMultipleParameterFinder(
19111912 multivalued .add ( false );
19121913 }
19131914 }
1915+ warnAboutMissingOrder ( method );
19141916 if ( !usingStatelessSession ( sessionType [0 ] ) // no byNaturalId() lookup API for SS
19151917 && matchesNaturalKey ( entity , fieldTypes ) ) {
19161918 putMember ( methodKey ,
@@ -1959,6 +1961,25 @@ && matchesNaturalKey( entity, fieldTypes ) ) {
19591961 }
19601962 }
19611963
1964+ private void warnAboutMissingOrder (ExecutableElement method ) {
1965+ if ( !hasAnnotation ( method , JD_ORDER_BY , JD_ORDER_BY_LIST ) ) {
1966+ boolean hasPageRequest = false ;
1967+ boolean hasSortOrOrder = false ;
1968+ for ( VariableElement parameter : method .getParameters () ) {
1969+ final String parameterType = parameter .asType ().toString ();
1970+ if ( isOrderParam ( parameterType ) ) {
1971+ hasSortOrOrder = true ;
1972+ }
1973+ if ( isPageParam ( parameterType ) ) {
1974+ hasPageRequest = true ;
1975+ }
1976+ }
1977+ if ( hasPageRequest && !hasSortOrOrder ) {
1978+ context .message ( method , "'PageRequest' with no 'Sort' or 'Order' and no '@OrderBy'" , Diagnostic .Kind .MANDATORY_WARNING );
1979+ }
1980+ }
1981+ }
1982+
19621983 private void createSingleParameterFinder (
19631984 ExecutableElement method , TypeMirror returnType , TypeElement entity , @ Nullable String containerType ) {
19641985 final String methodName = method .getSimpleName ().toString ();
0 commit comments