Spring jpa criteria example
import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; import jakarta.persistence.criteria.CriteriaBuilder; import jakarta.persistence.criteria.CriteriaQuery; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.Path; import jakarta.persistence.criteria.Predicate; import jakarta.persistence.criteria.Root; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.Month; import java.util.List; import java.util.Objects; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Component; @Component public class TransactionCriteria { private static final String TRANSACTION_POINT = "transactionPoint"; private static final String EARNED_POINTS = "earnedPoints"; private static final String CREATED_AT = "createdAt"; private static final String OPERATION_TYPE = "operationType"; private static final String CUSTOMER_ID = ...