CategorySpecifications.java
package com.learning.yasminishop.category;
import com.learning.yasminishop.common.entity.Category;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.jpa.domain.Specification;
@Slf4j
public class CategorySpecifications {
public static Specification<Category> hasName(String name) {
if (name == null || name.trim().isEmpty()) {
return null;
}
String lowerCaseName = name.trim().toLowerCase();
return (root, query, criteriaBuilder) -> criteriaBuilder.like(criteriaBuilder.lower(root.get("name")), "%" + lowerCaseName + "%");
}
public static Specification<Category> hasIsAvailable(Boolean isAvailable) {
if (isAvailable == null) {
return null;
}
return (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("isAvailable"), isAvailable);
}
private CategorySpecifications() {
}
}