Critérios de hibernação: associação externa esquerda com restrições nas duas tabelas

Estou fazendo uma junção externa esquerda, mas só posso aplicar restrições na primeira tabela. Existe uma maneira de você aplicar na segunda mesa também?

Aqui está o meu código:

Criteria criteria = this.crudService
        .initializeCriteria(Applicant.class).setFetchMode("products",
              FetchMode.JOIN);.

Funciona (o requerente possui uma propriedade candidateName):

criteria.add(Restrictions.eq("applicantName", "Markos")

Nenhuma dessas obras (o produto possui uma propriedade productName)

criteria.add(Restrictions.eq("productName", "product1")

criterios.add (Restrictions.eq ("products.productName", "product1") // produtos: o nome da propriedade critério.add (Restrictions.eq ("Product.productName", "product1") // Product: the nome da tabela DB

E esta é a exceção que estou recebendo dizendo (se bem entendi) que a propriedade productName não existe no Applicant:

EJB Exception: ; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant

Eu tentei usar um alias, mas isso gerou uma INNER JOIN, em vez da esquerda que eu quero.

Como posso aplicar restrições nas duas tabelas?

ATUALIZAR:

O problema provavelmente é o mesmo:https://forum.hibernate.org/viewtopic.php?p=2393694

questionAnswers(3)

yourAnswerToTheQuestion