code: protected Predicate createLike(Path root, CriteriaQuery<?> query, CriteriaBuilder cb, String propertyPath, Object argument,
                                     PersistenceContext context)
      {
          String like = (String) argument;
          like = like.replace(LIKE_WILDCARD, '%');
  
          return cb.like(cb.lower(root.get(propertyPath)), like.toLowerCase());
      }
docs: Apply a case-insensitive "like" constraint to the named property. Value
  should contains wildcards "*" (% in SQL) and "_".
  
  
  @param query
  @param propertyPath property name prefixed with an association alias
  @param argument     value
  @param context
  @return Predicate