All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.server.el.ElPropertyDeploy Maven / Gradle / Ivy

There is a newer version: 15.8.0
Show newest version
package io.ebeaninternal.server.el;

import io.ebeaninternal.api.SpiQueryManyJoin;
import io.ebeaninternal.server.deploy.BeanProperty;

/**
 * Used to parse expressions in queries (where, orderBy etc).
 * 

* Maps an expression to deployment information such as * the DB column and elPrefix/elPlaceHolder is used determine * joins and set place holders for table alias'. *

*/ public interface ElPropertyDeploy extends SpiQueryManyJoin { /** * This is the elPrefix for all root level properties. */ String ROOT_ELPREFIX = "${}"; /** * Return true if the property is a formula with a join clause. */ boolean containsFormulaWithJoin(); /** * Return true if there is a property on the path that is a many property. */ boolean containsMany(); /** * Return true if there is a property is on the path after sinceProperty * that is a 'many' property. */ boolean containsManySince(String sinceProperty); /** * Return the prefix path of the property. *

* This is use to determine joins required to support * this property. *

*/ String elPrefix(); /** * Return the place holder in the form of ${elPrefix}dbColumn. *

* The ${elPrefix} is replaced by the appropriate table alias. *

*/ String elPlaceholder(boolean encrypted); /** * Return the name of the property. */ String name(); /** * The ElPrefix plus name. */ String elName(); /** * Return the deployment db column for this property. */ String dbColumn(); /** * Return the underlying bean property. */ BeanProperty beanProperty(); /** * Return true if this is an aggregation property. */ boolean isAggregation(); /** * Return the fetch preference. This can be used to control which ToMany relationship * is left as a 'join' and which get converted to query join. */ int fetchPreference(); @Override default String path() { return elName(); } @Override default String fetchOrderBy() { return beanProperty().fetchOrderBy(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy