Closed
Description
my Converter
@WritingConverter
public class EnumWriteConverter implements Converter<ConverterEnum, String> {
public EnumWriteConverter() {
}
public String convert(ConverterEnum source) {
return source.getValue();
}
}
Pass the enumeration as a parameter,my enum impl -> ConverterEnum
@Aggregation({
"{$addFields: { '_idString': { $toString: '$_id' } }}",
"{$match: { userId: ?0 }}",
"{$lookup: { from: 't_sku_skill', localField: '_idString', foreignField: 'itemId', as: 'skuDetails' }}",
"{$unwind: { path: '$skuDetails', preserveNullAndEmptyArrays: true }}",
"{$match: { deletedEnum: ?1 }}",
"{$sort: { availableEnum: 1 }}", // ASC
"{$addFields: { quantity: '$skuDetails.quantity' }}",
"{$project: { _idString: 0, skuDetails: 0 }}"
})
Flux<ItemSkillPO.AggregationSku> findBy(String userId, EnumCommerceItemDeletedEnum deleted , Pageable pageable);
"I found that the Converter was called multiple times, and the source was always the same enumeration, ENUM_COMMERCE_ITEM_DELETED_UNDELETE, because I called this query method in the business logic."
@Override
public Flux<ItemSkillPO.AggregationSku> page(String userId, Pageable pageable) {
return repository.findBy(userId,ENUM_COMMERCE_ITEM_DELETED_UNDELETE,pageable);
}
I only called the query method once, but the Converter was called multiple times. Why?