Here are the examples of the java api org.grails.datastore.mapping.model.PersistentProperty taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
8 Examples
19
View Complete Implementation : GrailsHibernateUtil.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
/**
* Add order to criteria, creating necessary subCriteria if nested sort property (ie. sort:'nested.property').
*/
private static void addOrderPossiblyNested(AbstractHibernateDatastore datastore, Criteria c, Clreplaced<?> targetClreplaced, String sort, String order, boolean ignoreCase) {
int firstDotPos = sort.indexOf(".");
if (firstDotPos == -1) {
addOrder(c, sort, order, ignoreCase);
} else {
// nested property
String sortHead = sort.substring(0, firstDotPos);
String sortTail = sort.substring(firstDotPos + 1);
PersistentProperty property = getGrailsDomainClreplacedProperty(datastore, targetClreplaced, sortHead);
if (property instanceof Embedded) {
// embedded objects cannot reference enreplacedies (at time of writing), so no more recursion needed
addOrder(c, sort, order, ignoreCase);
} else if (property instanceof replacedociation) {
Criteria subCriteria = c.createCriteria(sortHead);
Clreplaced<?> propertyTargetClreplaced = ((replacedociation) property).getreplacedociatedEnreplacedy().getJavaClreplaced();
GrailsHibernateUtil.cacheCriteriaByMapping(datastore, propertyTargetClreplaced, subCriteria);
// Recurse on nested sort
addOrderPossiblyNested(datastore, subCriteria, propertyTargetClreplaced, sortTail, order, ignoreCase);
}
}
}
19
View Complete Implementation : AbstractHibernateQuery.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
@Override
public Query order(Order order) {
super.order(order);
String property = order.getProperty();
int i = property.indexOf('.');
if (i > -1) {
String sortHead = property.substring(0, i);
String sortTail = property.substring(i + 1);
if (createdreplacedociationPaths.containsKey(sortHead)) {
CriteriaAndAlias criteriaAndAlias = createdreplacedociationPaths.get(sortHead);
Criteria criteria = criteriaAndAlias.criteria;
org.hibernate.criterion.Order hibernateOrder = order.getDirection() == Order.Direction.ASC ? org.hibernate.criterion.Order.asc(property) : org.hibernate.criterion.Order.desc(property);
criteria.addOrder(order.isIgnoreCase() ? hibernateOrder.ignoreCase() : hibernateOrder);
} else {
PersistentProperty persistentProperty = enreplacedy.getPropertyByName(sortHead);
if (persistentProperty instanceof replacedociation) {
replacedociation a = (replacedociation) persistentProperty;
if (persistentProperty instanceof Embedded) {
addSimpleOrder(order, property);
} else {
if (criteria != null) {
Criteria subCriteria = criteria.createCriteria(sortHead);
addOrderToCriteria(subCriteria, sortTail, order);
} else if (detachedCriteria != null) {
DetachedCriteria subDetachedCriteria = detachedCriteria.createCriteria(sortHead);
addOrderToDetachedCriteria(subDetachedCriteria, sortTail, order);
}
}
}
}
} else {
addSimpleOrder(order, property);
}
return this;
}
19
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;
}
19
View Complete Implementation : AbstractHibernateQuery.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
@Override
public replacedociationQuery createQuery(String replacedociationName) {
final PersistentProperty property = enreplacedy.getPropertyByName(calculatePropertyName(replacedociationName));
if (property != null && (property instanceof replacedociation)) {
String alias = generateAlias(replacedociationName);
CriteriaAndAlias subCriteria = getOrCreateAlias(replacedociationName, alias);
replacedociation replacedociation = (replacedociation) property;
if (subCriteria.criteria != null) {
return new HibernatereplacedociationQuery(subCriteria.criteria, (AbstractHibernateSession) getSession(), replacedociation.getreplacedociatedEnreplacedy(), replacedociation, alias);
} else if (subCriteria.detachedCriteria != null) {
return new HibernatereplacedociationQuery(subCriteria.detachedCriteria, (AbstractHibernateSession) getSession(), replacedociation.getreplacedociatedEnreplacedy(), replacedociation, alias);
}
}
throw new InvalidDataAccessApiUsageException("Cannot query replacedociation [" + calculatePropertyName(replacedociationName) + "] of enreplacedy [" + enreplacedy + "]. Property is not an replacedociation!");
}
19
View Complete Implementation : GrailsHibernateQueryUtils.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
/**
* Add order to criteria, creating necessary subCriteria if nested sort property (ie. sort:'nested.property').
*/
private static void addOrderPossiblyNested(Criteria c, PersistentEnreplacedy enreplacedy, String sort, String order, boolean ignoreCase) {
int firstDotPos = sort.indexOf(".");
if (firstDotPos == -1) {
addOrder(c, sort, order, ignoreCase);
} else {
// nested property
String sortHead = sort.substring(0, firstDotPos);
String sortTail = sort.substring(firstDotPos + 1);
PersistentProperty property = enreplacedy.getPropertyByName(sortHead);
if (property instanceof Embedded) {
// embedded objects cannot reference enreplacedies (at time of writing), so no more recursion needed
addOrder(c, sort, order, ignoreCase);
} else if (property instanceof replacedociation) {
replacedociation a = (replacedociation) property;
Criteria subCriteria = c.createCriteria(sortHead);
PersistentEnreplacedy replacedociatedEnreplacedy = a.getreplacedociatedEnreplacedy();
Clreplaced<?> propertyTargetClreplaced = replacedociatedEnreplacedy.getJavaClreplaced();
cacheCriteriaByMapping(propertyTargetClreplaced, subCriteria);
// Recurse on nested sort
addOrderPossiblyNested(subCriteria, replacedociatedEnreplacedy, sortTail, order, ignoreCase);
}
}
}
19
View Complete Implementation : GrailsHibernateQueryUtils.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
/**
* Add order to criteria, creating necessary subCriteria if nested sort property (ie. sort:'nested.property').
*/
private static void addOrderPossiblyNested(CriteriaQuery query, From queryRoot, CriteriaBuilder criteriaBuilder, PersistentEnreplacedy enreplacedy, String sort, String order, boolean ignoreCase) {
if (ignoreCase && enreplacedy.getPropertyByName(sort).getType() != String.clreplaced) {
ignoreCase = false;
}
int firstDotPos = sort.indexOf(".");
if (firstDotPos == -1) {
addOrder(enreplacedy, query, queryRoot, criteriaBuilder, sort, order, ignoreCase);
} else {
// nested property
String sortHead = sort.substring(0, firstDotPos);
String sortTail = sort.substring(firstDotPos + 1);
PersistentProperty property = enreplacedy.getPropertyByName(sortHead);
if (property instanceof Embedded) {
// embedded objects cannot reference enreplacedies (at time of writing), so no more recursion needed
addOrder(enreplacedy, query, queryRoot, criteriaBuilder, sort, order, ignoreCase);
} else if (property instanceof replacedociation) {
replacedociation a = (replacedociation) property;
final Join join = queryRoot.join(sortHead);
PersistentEnreplacedy replacedociatedEnreplacedy = a.getreplacedociatedEnreplacedy();
Clreplaced<?> propertyTargetClreplaced = replacedociatedEnreplacedy.getJavaClreplaced();
// Recurse on nested sort
addOrderPossiblyNested(query, join, criteriaBuilder, replacedociatedEnreplacedy, sortTail, order, ignoreCase);
}
}
}
19
View Complete Implementation : ClosureEventListener.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
private void synchronizePersisterState(AbstractPreDatabaseOperationEvent event, Object[] state, EnreplacedyPersister persister, String[] propertyNames) {
Object enreplacedy = event.getEnreplacedy();
EnreplacedyReflector reflector = persistentEnreplacedy.getReflector();
HashMap<Integer, Object> changedState = new HashMap<>();
EnreplacedyMetamodel enreplacedyMetamodel = persister.getEnreplacedyMetamodel();
for (int i = 0; i < propertyNames.length; i++) {
String p = propertyNames[i];
Integer index = enreplacedyMetamodel.getPropertyIndexOrNull(p);
if (index == null)
continue;
PersistentProperty property = persistentEnreplacedy.getPropertyByName(p);
if (property == null) {
continue;
}
String propertyName = property.getName();
if (GormProperties.VERSION.equals(propertyName)) {
continue;
}
Object value = reflector.getProperty(enreplacedy, propertyName);
if (state[index] != value) {
changedState.put(i, value);
}
state[index] = value;
}
synchronizeEnreplacedyUpdateActionState(event, enreplacedy, changedState);
}
18
View Complete Implementation : AbstractHibernateQuery.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
@SuppressWarnings("unchecked")
static void doTypeConversionIfNeccessary(PersistentEnreplacedy enreplacedy, PropertyCriterion pc) {
if (pc.getClreplaced().getSimpleName().startsWith(SIZE_CONSTRAINT_PREFIX)) {
return;
}
String property = pc.getProperty();
Object value = pc.getValue();
PersistentProperty p = enreplacedy.getPropertyByName(property);
if (p != null && !p.getType().isInstance(value)) {
pc.setValue(conversionService.convert(value, p.getType()));
}
}