in grails-datastore-gorm-hibernate/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateCriterionAdapter.java [421:494]
protected void addSimplePropertyCriterionAdapters() {
criterionAdaptors.put(Query.IdEquals.class, new CriterionAdaptor() {
@Override
public org.hibernate.criterion.Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.Criterion criterion, String alias) {
return Restrictions.idEq(((Query.IdEquals) criterion).getValue());
}
});
criterionAdaptors.put(Query.Equals.class, new CriterionAdaptor<Query.Equals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.Equals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if(value instanceof DetachedCriteria) {
return Property.forName(propertyName).eq((DetachedCriteria) value);
}
return Restrictions.eq(propertyName, value);
}
});
criterionAdaptors.put(Query.NotEquals.class, new CriterionAdaptor<Query.NotEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.NotEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if (value instanceof DetachedCriteria) {
return Property.forName(propertyName).ne((DetachedCriteria) value);
}
return Restrictions.ne(propertyName, value);
}
});
criterionAdaptors.put(Query.GreaterThan.class, new CriterionAdaptor<Query.GreaterThan>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.GreaterThan criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if (value instanceof DetachedCriteria) {
return Property.forName(propertyName).gt((DetachedCriteria) value);
}
return Restrictions.gt(propertyName, value);
}
});
criterionAdaptors.put(Query.GreaterThanEquals.class, new CriterionAdaptor<Query.GreaterThanEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.GreaterThanEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if(value instanceof DetachedCriteria) {
return Property.forName(propertyName).ge((DetachedCriteria) value);
}
return Restrictions.ge(propertyName, value);
}
});
criterionAdaptors.put(Query.LessThan.class, new CriterionAdaptor<Query.LessThan>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.LessThan criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if (value instanceof DetachedCriteria) {
return Property.forName(propertyName).lt((DetachedCriteria) value);
}
return Restrictions.lt(propertyName, value);
}
});
criterionAdaptors.put(Query.LessThanEquals.class, new CriterionAdaptor<Query.LessThanEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.LessThanEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
if (value instanceof DetachedCriteria) {
return Property.forName(propertyName).le((DetachedCriteria) value);
}
return Restrictions.le(propertyName, value);
}
});
}