in grails-datastore-gorm-hibernate/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateCriterionAdapter.java [369:419]
protected void addSizeComparisonCriterionAdapters() {
criterionAdaptors.put(Query.SizeEquals.class, new CriterionAdaptor<Query.SizeEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.SizeEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
int size = value instanceof Number ? ((Number)value).intValue() : Integer.parseInt(value.toString());
return Restrictions.sizeEq(propertyName, size);
}
});
criterionAdaptors.put(Query.SizeGreaterThan.class, new CriterionAdaptor<Query.SizeGreaterThan>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.SizeGreaterThan criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
int size = value instanceof Number ? ((Number)value).intValue() : Integer.parseInt(value.toString());
return Restrictions.sizeGt(propertyName, size);
}
});
criterionAdaptors.put(Query.SizeGreaterThanEquals.class, new CriterionAdaptor<Query.SizeGreaterThanEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.SizeGreaterThanEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
int size = value instanceof Number ? ((Number)value).intValue() : Integer.parseInt(value.toString());
return Restrictions.sizeGe(propertyName, size);
}
});
criterionAdaptors.put(Query.SizeLessThan.class, new CriterionAdaptor<Query.SizeLessThan>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.SizeLessThan criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
int size = value instanceof Number ? ((Number)value).intValue() : Integer.parseInt(value.toString());
return Restrictions.sizeLt(propertyName, size);
}
});
criterionAdaptors.put(Query.SizeLessThanEquals.class, new CriterionAdaptor<Query.SizeLessThanEquals>() {
@Override
public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.SizeLessThanEquals criterion, String alias) {
String propertyName = getPropertyName(criterion, alias);
Object value = criterion.getValue();
int size = value instanceof Number ? ((Number)value).intValue() : Integer.parseInt(value.toString());
return Restrictions.sizeLe(propertyName, size);
}
});
}