title: how to simplify syntax with dynamic QueryDSL, avoiding multiple "if"
body: <p>I am building a dynamic query using a FilfetDto
  If the user has filled some field in the UI, th e contains some values but not all.
  So i have to test each property to construct a query filtering only on filled (not empty) field :</p>
  
  <pre><code>    JPAQuery dslQuery = new JPAQuery(em);
  
      dslQuery.from(book);
      dslQuery.join(book.author, author);      
  
      String title = StringUtils.upperCase(StringUtils.trim(_filter.getTitle()));
      if (StringUtils.isNotBlank(title)) {
          dslQuery.where(book.title.upper().like(title));
      }
      String isbn = StringUtils.trim(_filter.getIsbn());
      if (StringUtils.isNotBlank(isbn)) {
          dslQuery.where(book.isbn.like(isbn));
      }
      if (_filter.getAuthorId() != null) {
          dslQuery.where(author.id.eq(_filter.getAuthorId()));
      }
  </code></pre>
  
  <p>Is there a way to abstract the "if" with another more readable syntax ?</p>
  
  <p>I would like something like :</p>
  
  <pre><code>    JPAQuery dslQuery = new JPAQuery(em);
  
      dslQuery.from(book);
      dslQuery.join(book.author, author);
  
      dslQuery.where(book.title.upperIfNotBlank().like(title));
      dslQuery.where(book.isbn.likeIfNotNull(isbn));
      dslQuery.where(author.id.eqIfNotNull(_filter.getAuthorId()));
  </code></pre>
  
  <p>It would be nice if the "IfNotNull" could be turned on, or even be the default behaviour ...<br>
  so it would end up like this : </p>
  
  <pre><code>    dslQuery.where(book.title.upper().like(title));
      dslQuery.where(book.isbn.like(isbn));
      dslQuery.where(author.id.eq(_filter.getAuthorId()));
  </code></pre>