docs: private Subquery<ImageFile> getImagesWithFileNameSubquery(final String filename, final FilterStringLogic searchLogic) {
          final CriteriaBuilder criteriaBuilder = getCriteriaBuilder();
          final Subquery<ImageFile> subQuery = getCriteriaQuery().subquery(ImageFile.class);
          final Root<LanguageImage> root = subQuery.from(LanguageImage.class);
          subQuery.select(root.get("imageFile").as(ImageFile.class));
  
          // Create the Condition for the subquery
          final Predicate imageIdMatch = criteriaBuilder.equal(getRootPath().get("imageFileId"), root.get("imageFile").get("imageFileId"));
          final Predicate filenameMatch;
          if (searchLogic == FilterStringLogic.MATCHES) {
              filenameMatch = criteriaBuilder.equal(root.get("originalFileName"), filename);
          } else {
              filenameMatch = criteriaBuilder.like(criteriaBuilder.lower(root.get("originalFileName").as(String.class)),
                      '%' + cleanLikeCondition(filename).toLowerCase() + '%');
          }
          subQuery.where(criteriaBuilder.and(imageIdMatch, filenameMatch));
  
          return subQuery;
      }