I have a pojo with a Set of java.lang.Integer values. The pojo is left joined by another object using criteria:
Code:
criteria.createAlias("pojoWithASet", "pojoWithASet", Criteria.LEFT_JOIN);
When I add a logical expression OR on a field of the pojo, the query resolves properly to that field in the database, for instance:
Code:
LogicalExpression or = Restrictions.or(Expression.eq("originalPojo.field", fieldValue), Expression.eq("pojoWithASet.anotherField", fieldValue));
select ... from ..... where originalPojo.field = fieldValue or pojoWithASet.anotherField = fieldValue
However, when I change the expression to below, the query is resolved to work on the pojoWithASet's primary key instead of including the set (the table is not joined in the query at all).
Code:
LogicalExpression or = Restrictions.or(Expression.eq("originalPojo.field", fieldValue), Expression.eq("pojoWithASet.setField", fieldValue));
select ... from ..... where originalPojo.field = fieldValue or pojoWithASet.primaryKey = fieldValue
What am I missing?