33
33
import org .springdoc .core .converters .Pageable ;
34
34
import org .springdoc .core .converters .QueryDslPredicateConverter ;
35
35
import org .springdoc .core .converters .RepresentationModelLinksOASMixin ;
36
+ import org .springdoc .core .customisers .QuerydslPredicateOperationCustomizer ;
36
37
import org .springdoc .core .customizers .OpenApiCustomiser ;
37
38
38
39
import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
40
+ import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
39
41
import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
40
42
import org .springframework .context .annotation .Bean ;
41
43
import org .springframework .context .annotation .Configuration ;
44
+ import org .springframework .core .LocalVariableTableParameterNameDiscoverer ;
42
45
import org .springframework .data .querydsl .binding .QuerydslBindingsFactory ;
43
46
import org .springframework .data .rest .core .config .RepositoryRestConfiguration ;
44
47
import org .springframework .hateoas .Link ;
45
48
import org .springframework .hateoas .Links ;
46
49
import org .springframework .hateoas .RepresentationModel ;
47
50
48
51
import static org .springdoc .core .Constants .SPRINGDOC_ENABLED ;
52
+ import static org .springdoc .core .Constants .SPRINGDOC_QDSLPREDICATE_MODE ;
49
53
import static org .springdoc .core .SpringDocUtils .getConfig ;
50
54
51
55
@ Configuration
@@ -63,9 +67,17 @@ public class SpringDocDataRestConfiguration {
63
67
class QuerydslProvider {
64
68
65
69
@ Bean
70
+ @ ConditionalOnProperty (value = SPRINGDOC_QDSLPREDICATE_MODE ,havingValue = "object" )
66
71
public QueryDslPredicateConverter qdslConverter (Optional <QuerydslBindingsFactory > querydslBindingsFactory ) {
67
72
return querydslBindingsFactory .isPresent () ? new QueryDslPredicateConverter (querydslBindingsFactory .get ()) : null ;
68
73
}
74
+
75
+ @ Bean
76
+ @ ConditionalOnMissingBean ({ QueryDslPredicateConverter .class })
77
+ public QuerydslPredicateOperationCustomizer querydslPredicateOperationCustomizer (QuerydslBindingsFactory querydslBindingsFactory ,
78
+ LocalVariableTableParameterNameDiscoverer localVariableTableParameterNameDiscoverer ) {
79
+ return new QuerydslPredicateOperationCustomizer (querydslBindingsFactory , localVariableTableParameterNameDiscoverer );
80
+ }
69
81
}
70
82
71
83
@ Configuration
0 commit comments