package com.krylov.refound.util; import com.krylov.refound.entity.Post; import org.springframework.data.jpa.domain.Specification; public class PostSpecification { public static Specification hasSearch(String search) { return (root, query, cb) -> { if (search == null || search.isBlank()) { return cb.conjunction(); } String pattern = "%" + search.toLowerCase() + "%"; return cb.or( cb.like(cb.lower(root.get("title")), pattern), cb.like(cb.lower(root.get("description")), pattern) ); }; } public static Specification hasType(String type) { return (root, query, cb) -> { if (type == null || type.isBlank()) return cb.conjunction(); return cb.equal(cb.lower(root.get("type")), type.toLowerCase()); }; } }