@@ -1645,6 +1645,7 @@ private void createCriteriaFinder(
1645
1645
checkFinderParameter (entity , parameter );
1646
1646
}
1647
1647
}
1648
+ warnAboutMissingOrder ( method );
1648
1649
putMember ( methodKey ,
1649
1650
new CriteriaFinderMethod (
1650
1651
this , method ,
@@ -1911,6 +1912,7 @@ private void createMultipleParameterFinder(
1911
1912
multivalued .add ( false );
1912
1913
}
1913
1914
}
1915
+ warnAboutMissingOrder ( method );
1914
1916
if ( !usingStatelessSession ( sessionType [0 ] ) // no byNaturalId() lookup API for SS
1915
1917
&& matchesNaturalKey ( entity , fieldTypes ) ) {
1916
1918
putMember ( methodKey ,
@@ -1959,6 +1961,25 @@ && matchesNaturalKey( entity, fieldTypes ) ) {
1959
1961
}
1960
1962
}
1961
1963
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
+
1962
1983
private void createSingleParameterFinder (
1963
1984
ExecutableElement method , TypeMirror returnType , TypeElement entity , @ Nullable String containerType ) {
1964
1985
final String methodName = method .getSimpleName ().toString ();
0 commit comments