如何缩短 Spring 数据存储库方法的查询 DSL?

How do I shorten this query DSL for Spring Data repository method?

我有一个查询要根据其现在和作为单个术语在不同的字段上进行搜索。我该如何缩短它?

Page<DomainSetting>
    findByDomainContainingIgnoreCaseOrGeoContainingIgnoreCaseOrChannelContainingIgnoreCaseOrSettlementContainingIgnoreCaseOrPaymentGroupContainingIgnoreCaseOrDeliveryCountriesContainingIgnoreCase(Pageable pageable, String domain, String geo, String channel,
                                                                                                                                                                                                    String settlement, String paymentGroup,
                                                                                                                                                                                                    String deliveryCountries
    );

$regex 运算符在您的方法中很有用,选项 i 表示不区分大小写

可以试试下面的方法吗:

@Query("'$or': ['domain' : {$regex : ?1, $options: 'i'}, 'geo' : {$regex : ?2, $options: 'i'}, 'channel' : {$regex : ?3, $options: 'i'}, 'settlement' : {$regex : ?4, $options: 'i'}, 'paymentGroup' : {$regex : ?5, $options: 'i'}, , 'deliveryCountries' : {$regex : ?6, $options: 'i'}]")
Page<DomainSetting> findByDomainSettings(Pageable pageable, String domain, String geo, String channel, String settlement, String paymentGroup, String deliveryCountries)