Here are the examples of the java api org.grails.datastore.mapping.query.criteria.FunctionCallingCriterion.getFunctionName() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
12
View Complete Implementation : AbstractHibernateQuery.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
org.hibernate.criterion.Criterion getRestrictionForFunctionCall(FunctionCallingCriterion criterion, PersistentEnreplacedy enreplacedy) {
org.hibernate.criterion.Criterion sqlRestriction;
SessionFactory sessionFactory = ((IHibernateTemplate) session.getNativeInterface()).getSessionFactory();
String property = criterion.getProperty();
Criterion datastoreCriterion = criterion.getPropertyCriterion();
PersistentProperty pp = enreplacedy.getPropertyByName(property);
if (pp == null)
throw new InvalidDataAccessResourceUsageException("Cannot execute function defined in query [" + criterion.getFunctionName() + "] on non-existent property [" + property + "] of [" + enreplacedy.getJavaClreplaced() + "]");
String functionName = criterion.getFunctionName();
Dialect dialect = getDialect(sessionFactory);
SQLFunction sqlFunction = dialect.getFunctions().get(functionName);
if (sqlFunction != null) {
TypeResolver typeResolver = getTypeResolver(sessionFactory);
BasicType basic = typeResolver.basic(pp.getType().getName());
if (basic != null && datastoreCriterion instanceof PropertyCriterion) {
PropertyCriterion pc = (PropertyCriterion) datastoreCriterion;
final org.hibernate.criterion.Criterion hibernateCriterion = getHibernateCriterionAdapter().toHibernateCriterion(this, datastoreCriterion, alias);
if (hibernateCriterion instanceof SimpleExpression) {
SimpleExpression expr = (SimpleExpression) hibernateCriterion;
Object op = ReflectionUtils.getField(opField, expr);
PropertyMapping mapping = getEnreplacedyPersister(enreplacedy.getJavaClreplaced().getName(), sessionFactory);
String[] columns;
if (alias != null) {
columns = mapping.toColumns(alias, property);
} else {
columns = mapping.toColumns(property);
}
String root = render(basic, Arrays.asList(columns), sessionFactory, sqlFunction);
Object value = pc.getValue();
if (value != null) {
sqlRestriction = Restrictions.sqlRestriction(root + op + "?", value, typeResolver.basic(value.getClreplaced().getName()));
} else {
sqlRestriction = Restrictions.sqlRestriction(root + op + "?", value, basic);
}
} else {
throw new InvalidDataAccessResourceUsageException("Unsupported function [" + functionName + "] defined in query for property [" + property + "] with type [" + pp.getType() + "]");
}
} else {
throw new InvalidDataAccessResourceUsageException("Unsupported function [" + functionName + "] defined in query for property [" + property + "] with type [" + pp.getType() + "]");
}
} else {
throw new InvalidDataAccessResourceUsageException("Unsupported function defined in query [" + functionName + "]");
}
return sqlRestriction;
}