code: public static Specification<JpaTarget> hasTags(final String[] tagNames, final Boolean selectTargetWithNoTag) {
          return (targetRoot, query, cb) -> {
              final Predicate predicate = getPredicate(targetRoot, cb, selectTargetWithNoTag, tagNames);
              query.distinct(true);
              return predicate;
          };
      }
docs: {@link Specification} for retrieving {@link Target}s by "has no tag
  names"or "has at least on of the given tag names".
  
  @param tagNames
  to be filtered on
  @param selectTargetWithNoTag
  flag to get targets with no tag assigned
  @return the {@link Target} {@link Specification}