Hi all, I am doing a LEFT OUTER JOIN, but I am only able to apply Restrictions on the first table. Is there a way ti apply on the second table as well?
Here is my code:
Code:
Criteria criteria = this.crudService
.initializeCriteria(Applicant.class).setFetchMode("products",
FetchMode.JOIN);
This works (applicant has an applicantName property):
Quote:
criteria.add(Restrictions.eq("applicantName", "Markos")
Neither of these works (product has a productName property)
Quote:
criteria.add(Restrictions.eq("productName", "product1")
criteria.add(Restrictions.eq("products.productName", "product1") // products: the name of the property
criteria.add(Restrictions.eq("Product.productName", "product1") // Product: the name of the DB table
And this is the exception I am receiving saying (if I understand correctly) that the productName property does not exist in Applicant:
Quote:
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
I tried to use an alias, but this generated an INNER JOIN, instead of the LEFT OUTER JOIN I want.
How can I apply restrictions on both tables?