Search in sources :

Example 6 with DerivedReferrerOption

use of org.dbflute.cbean.coption.DerivedReferrerOption in project dbflute-core by dbflute.

the class HpQDRFunction method min.

/**
 * An overload method for min(). So refer to the method's java-doc about basic info.
 * <pre>
 * cb.query().derivedPurchaseList().<span style="color: #CC4747">min</span>(<span style="color: #553000">purchaseCB</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> {
 *     <span style="color: #553000">purchaseCB</span>.specify().<span style="color: #994747">columnPurchasePrice</span>(); <span style="color: #3F7E5E">// *Point</span>
 *     <span style="color: #553000">purchaseCB</span>.query().setPaymentCompleteFlg_Equal_True();
 * }).<span style="color: #994747">greaterEqual</span>(123, <span style="color: #553000">op</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> <span style="color: #553000">op</span>.<span style="color: #CC4747">coalesce</span>(0));
 * </pre>
 * @param derivedCBLambda The callback for sub-query of referrer. (NotNull)
 * @param opLambda The callback for option of DerivedReferrer. For example, you can use a coalesce function. (NotNull)
 * @return The parameter for comparing with scalar. (NotNull)
 */
public HpQDRParameter<CB, Object> min(SubQuery<CB> derivedCBLambda, FunctionFilterOptionCall<DerivedReferrerOption> opLambda) {
    assertDerivedReferrerOption(opLambda);
    final DerivedReferrerOption option = createDerivedReferrerOption();
    opLambda.callback(option);
    return doMin(derivedCBLambda, option);
}
Also used : DerivedReferrerOption(org.dbflute.cbean.coption.DerivedReferrerOption)

Example 7 with DerivedReferrerOption

use of org.dbflute.cbean.coption.DerivedReferrerOption in project dbflute-core by dbflute.

the class HpQDRFunction method sum.

/**
 * An overload method for sum(). So refer to the method's java-doc about basic info.
 * <pre>
 * cb.query().derivedPurchaseList().<span style="color: #CC4747">sum</span>(<span style="color: #553000">purchaseCB</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> {
 *     <span style="color: #553000">purchaseCB</span>.specify().<span style="color: #994747">columnPurchasePrice</span>(); <span style="color: #3F7E5E">// *Point</span>
 *     <span style="color: #553000">purchaseCB</span>.query().setPaymentCompleteFlg_Equal_True();
 * }).<span style="color: #994747">greaterEqual</span>(123, <span style="color: #553000">op</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> <span style="color: #553000">op</span>.<span style="color: #CC4747">coalesce</span>(0));
 * </pre>
 * @param derivedCBLambda The callback for sub-query of referrer. (NotNull)
 * @param opLambda The callback for option of DerivedReferrer. For example, you can use a coalesce function. (NotNull)
 * @return The parameter for comparing with scalar. (NotNull)
 */
public HpQDRParameter<CB, Number> sum(SubQuery<CB> derivedCBLambda, FunctionFilterOptionCall<DerivedReferrerOption> opLambda) {
    assertDerivedReferrerOption(opLambda);
    final DerivedReferrerOption option = createDerivedReferrerOption();
    opLambda.callback(option);
    return doSum(derivedCBLambda, option);
}
Also used : DerivedReferrerOption(org.dbflute.cbean.coption.DerivedReferrerOption)

Example 8 with DerivedReferrerOption

use of org.dbflute.cbean.coption.DerivedReferrerOption in project dbflute-core by dbflute.

the class HpQDRFunction method countDistinct.

/**
 * An overload method for countDistinct(). So refer to the method's java-doc about basic info.
 * <pre>
 * cb.query().derivedPurchaseList().<span style="color: #CC4747">countDistinct</span>(<span style="color: #553000">purchaseCB</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> {
 *     <span style="color: #553000">purchaseCB</span>.specify().<span style="color: #994747">columnPurchasePrice</span>(); <span style="color: #3F7E5E">// *Point</span>
 *     <span style="color: #553000">purchaseCB</span>.query().setPaymentCompleteFlg_Equal_True();
 * }).<span style="color: #994747">greaterEqual</span>(123, <span style="color: #553000">op</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> <span style="color: #553000">op</span>.<span style="color: #CC4747">coalesce</span>(0));
 * </pre>
 * @param derivedCBLambda The callback for sub-query of referrer. (NotNull)
 * @param opLambda The callback for option of DerivedReferrer. For example, you can use a coalesce function. (NotNull)
 * @return The parameter for comparing with scalar. (NotNull)
 */
public HpQDRParameter<CB, Integer> countDistinct(SubQuery<CB> derivedCBLambda, FunctionFilterOptionCall<DerivedReferrerOption> opLambda) {
    assertDerivedReferrerOption(opLambda);
    final DerivedReferrerOption option = createDerivedReferrerOption();
    opLambda.callback(option);
    return doCountDistinct(derivedCBLambda, option);
}
Also used : DerivedReferrerOption(org.dbflute.cbean.coption.DerivedReferrerOption)

Example 9 with DerivedReferrerOption

use of org.dbflute.cbean.coption.DerivedReferrerOption in project dbflute-core by dbflute.

the class HpQDRFunction method avg.

/**
 * An overload method for avg(). So refer to the method's java-doc about basic info.
 * <pre>
 * cb.query().derivedPurchaseList().<span style="color: #CC4747">avg</span>(<span style="color: #553000">purchaseCB</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> {
 *     <span style="color: #553000">purchaseCB</span>.specify().<span style="color: #994747">columnPurchasePrice</span>(); <span style="color: #3F7E5E">// *Point</span>
 *     <span style="color: #553000">purchaseCB</span>.query().setPaymentCompleteFlg_Equal_True();
 * }).<span style="color: #994747">greaterEqual</span>(123, <span style="color: #553000">op</span> <span style="color: #90226C; font-weight: bold"><span style="font-size: 120%">-</span>&gt;</span> <span style="color: #553000">op</span>.<span style="color: #CC4747">coalesce</span>(0));
 * </pre>
 * @param derivedCBLambda The callback for sub-query of referrer. (NotNull)
 * @param opLambda The callback for option of DerivedReferrer. For example, you can use a coalesce function. (NotNull)
 * @return The parameter for comparing with scalar. (NotNull)
 */
public HpQDRParameter<CB, Number> avg(SubQuery<CB> derivedCBLambda, FunctionFilterOptionCall<DerivedReferrerOption> opLambda) {
    assertDerivedReferrerOption(opLambda);
    final DerivedReferrerOption option = createDerivedReferrerOption();
    opLambda.callback(option);
    return doAvg(derivedCBLambda, option);
}
Also used : DerivedReferrerOption(org.dbflute.cbean.coption.DerivedReferrerOption)

Example 10 with DerivedReferrerOption

use of org.dbflute.cbean.coption.DerivedReferrerOption in project dbflute-core by dbflute.

the class AbstractConditionQuery method doRegisterSpecifyDerivedReferrer.

protected void doRegisterSpecifyDerivedReferrer(String function, final ConditionQuery subQuery, String columnDbName, String relatedColumnDbName, String propertyName, String referrerPropertyName, String aliasName, DerivedReferrerOption option) {
    assertFunctionNotNull("SpecifyDerivedReferrer", columnDbName, function);
    assertSubQueryNotNull("SpecifyDerivedReferrer", columnDbName, subQuery);
    option.xacceptBaseCB(xgetBaseCB());
    if (isDerivedReferrerSelectAllPossible(subQuery, option)) {
        createCBExThrower().throwSpecifyDerivedReferrerSelectAllPossibleException(function, subQuery, aliasName);
    }
    final SubQueryPath subQueryPath = new SubQueryPath(xgetLocation(propertyName));
    final GeneralColumnRealNameProvider localRealNameProvider = new GeneralColumnRealNameProvider();
    final int subQueryLevel = subQuery.xgetSqlClause().getSubQueryLevel();
    final SqlClause subQueryClause = subQuery.xgetSqlClause();
    final String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";
    final ColumnSqlNameProvider subQuerySqlNameProvider = dbName -> subQuery.toColumnSqlName(dbName);
    final DBMeta subQueryDBMeta = findDBMeta(subQuery.asTableDbName());
    final GearedCipherManager cipherManager = xgetSqlClause().getGearedCipherManager();
    final String mainSubQueryIdentity = propertyName + "[" + subQueryLevel + ":subquerymain]";
    final SpecifyDerivedReferrer derivedReferrer = option.createSpecifyDerivedReferrer(subQueryPath, localRealNameProvider, subQuerySqlNameProvider, subQueryLevel, subQueryClause, subQueryIdentity, subQueryDBMeta, cipherManager, mainSubQueryIdentity, aliasName);
    xregisterParameterOption(option);
    final String correlatedFixedCondition = xbuildReferrerCorrelatedFixedCondition(subQuery, referrerPropertyName);
    final String clause = derivedReferrer.buildDerivedReferrer(function, columnDbName, relatedColumnDbName, correlatedFixedCondition, option);
    final HpDerivingSubQueryInfo subQueryInfo = xcreateDerivingSubQueryInfo(function, aliasName, clause, derivedReferrer);
    xgetSqlClause().specifyDerivingSubQuery(subQueryInfo);
}
Also used : ColumnRealNameProvider(org.dbflute.dbmeta.name.ColumnRealNameProvider) DerivedReferrerOptionFactory(org.dbflute.cbean.coption.DerivedReferrerOptionFactory) UnionClauseProvider(org.dbflute.cbean.sqlclause.union.UnionClauseProvider) SpecifiedColumn(org.dbflute.cbean.dream.SpecifiedColumn) ConditionKeyInScope(org.dbflute.cbean.ckey.ConditionKeyInScope) Date(java.util.Date) ParameterOption(org.dbflute.cbean.coption.ParameterOption) LoggerFactory(org.slf4j.LoggerFactory) OrderByElement(org.dbflute.cbean.sqlclause.orderby.OrderByElement) QueryClause(org.dbflute.cbean.sqlclause.query.QueryClause) ExceptionMessageBuilder(org.dbflute.helper.message.ExceptionMessageBuilder) ColumnSqlNameProvider(org.dbflute.dbmeta.name.ColumnSqlNameProvider) SimpleMapPmb(org.dbflute.twowaysql.pmbean.SimpleMapPmb) ColumnRealName(org.dbflute.dbmeta.name.ColumnRealName) PrimaryInfo(org.dbflute.dbmeta.info.PrimaryInfo) OrScopeQueryAndPartUnsupportedOperationException(org.dbflute.exception.OrScopeQueryAndPartUnsupportedOperationException) Map(java.util.Map) HpInvalidQueryInfo(org.dbflute.cbean.chelper.HpInvalidQueryInfo) DfBeanDescFactory(org.dbflute.helper.beans.factory.DfBeanDescFactory) ManualOrderOption(org.dbflute.cbean.ordering.ManualOrderOption) ConditionOption(org.dbflute.cbean.coption.ConditionOption) FixedConditionLazyChecker(org.dbflute.cbean.sqlclause.join.FixedConditionLazyChecker) Method(java.lang.reflect.Method) RangeOfOption(org.dbflute.cbean.coption.RangeOfOption) DfCollectionUtil(org.dbflute.util.DfCollectionUtil) SubQuery(org.dbflute.cbean.scoping.SubQuery) TimeZone(java.util.TimeZone) IndependentProcessor(org.dbflute.helper.function.IndependentProcessor) Timestamp(java.sql.Timestamp) Collection(java.util.Collection) LikeSearchOption(org.dbflute.cbean.coption.LikeSearchOption) QueryModeProvider(org.dbflute.cbean.cvalue.ConditionValue.QueryModeProvider) FixedConditionResolver(org.dbflute.cbean.sqlclause.join.FixedConditionResolver) ScalarConditionOption(org.dbflute.cbean.coption.ScalarConditionOption) DBMeta(org.dbflute.dbmeta.DBMeta) FunCustodial(org.dbflute.FunCustodial) DfBeanDesc(org.dbflute.helper.beans.DfBeanDesc) Classification(org.dbflute.jdbc.Classification) List(java.util.List) ColumnInfo(org.dbflute.dbmeta.info.ColumnInfo) ExistsReferrer(org.dbflute.cbean.sqlclause.subquery.ExistsReferrer) LocalDate(java.time.LocalDate) Entry(java.util.Map.Entry) SqlClauseMySql(org.dbflute.cbean.sqlclause.SqlClauseMySql) DBMetaProvider(org.dbflute.dbmeta.DBMetaProvider) DBFluteSystem(org.dbflute.system.DBFluteSystem) ColumnFunctionCipher(org.dbflute.cbean.cipher.ColumnFunctionCipher) DateConditionAdjuster(org.dbflute.cbean.garnish.datefitting.DateConditionAdjuster) ConditionKeyPrepareResult(org.dbflute.cbean.ckey.ConditionKeyPrepareResult) ScalarCondition(org.dbflute.cbean.sqlclause.subquery.ScalarCondition) HpFixedConditionQueryResolver(org.dbflute.cbean.chelper.HpFixedConditionQueryResolver) LocalDateTime(java.time.LocalDateTime) IllegalConditionBeanOperationException(org.dbflute.exception.IllegalConditionBeanOperationException) HashMap(java.util.HashMap) ReflectionFailureException(org.dbflute.util.DfReflectionUtil.ReflectionFailureException) DerivedReferrerOption(org.dbflute.cbean.coption.DerivedReferrerOption) ManualOrderOptionCall(org.dbflute.cbean.ordering.ManualOrderOptionCall) GearedCipherManager(org.dbflute.cbean.cipher.GearedCipherManager) ConditionInvokingFailureException(org.dbflute.exception.ConditionInvokingFailureException) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) SqlClauseOracle(org.dbflute.cbean.sqlclause.SqlClauseOracle) HpQDRSetupper(org.dbflute.cbean.chelper.HpQDRSetupper) ExtensionOperand(org.dbflute.dbway.ExtensionOperand) HpQDRParameter(org.dbflute.cbean.chelper.HpQDRParameter) PartitionByProvider(org.dbflute.cbean.sqlclause.subquery.ScalarCondition.PartitionByProvider) DfReflectionUtil(org.dbflute.util.DfReflectionUtil) QueryUsedAliasInfo(org.dbflute.cbean.sqlclause.query.QueryUsedAliasInfo) ShortCharHandlingMode(org.dbflute.jdbc.ShortCharHandlingMode) Srl(org.dbflute.util.Srl) QueryClauseArranger(org.dbflute.cbean.sqlclause.query.QueryClauseArranger) ColumnSqlName(org.dbflute.dbmeta.name.ColumnSqlName) ConditionValue(org.dbflute.cbean.cvalue.ConditionValue) RelationInfo(org.dbflute.dbmeta.info.RelationInfo) ForeignInfo(org.dbflute.dbmeta.info.ForeignInfo) FromToOption(org.dbflute.cbean.coption.FromToOption) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) HpSLCFunction(org.dbflute.cbean.chelper.HpSLCFunction) SpecifyDerivedReferrer(org.dbflute.cbean.sqlclause.subquery.SpecifyDerivedReferrer) WayOfMySQL(org.dbflute.dbway.WayOfMySQL) QueryDerivedReferrer(org.dbflute.cbean.sqlclause.subquery.QueryDerivedReferrer) ConditionKey(org.dbflute.cbean.ckey.ConditionKey) ConditionOptionCall(org.dbflute.cbean.coption.ConditionOptionCall) HpSLCCustomized(org.dbflute.cbean.chelper.HpSLCCustomized) ConditionBeanExceptionThrower(org.dbflute.cbean.exception.ConditionBeanExceptionThrower) HpDerivingSubQueryInfo(org.dbflute.cbean.chelper.HpDerivingSubQueryInfo) SubQueryPath(org.dbflute.cbean.sqlclause.subquery.SubQueryPath) ReferrerInfo(org.dbflute.dbmeta.info.ReferrerInfo) DfTypeUtil(org.dbflute.util.DfTypeUtil) HpQDRFunction(org.dbflute.cbean.chelper.HpQDRFunction) SqlClause(org.dbflute.cbean.sqlclause.SqlClause) InScopeRelation(org.dbflute.cbean.sqlclause.subquery.InScopeRelation) DBMeta(org.dbflute.dbmeta.DBMeta) SubQueryPath(org.dbflute.cbean.sqlclause.subquery.SubQueryPath) SqlClause(org.dbflute.cbean.sqlclause.SqlClause) HpDerivingSubQueryInfo(org.dbflute.cbean.chelper.HpDerivingSubQueryInfo) ColumnSqlNameProvider(org.dbflute.dbmeta.name.ColumnSqlNameProvider) SpecifyDerivedReferrer(org.dbflute.cbean.sqlclause.subquery.SpecifyDerivedReferrer) GearedCipherManager(org.dbflute.cbean.cipher.GearedCipherManager)

Aggregations

DerivedReferrerOption (org.dbflute.cbean.coption.DerivedReferrerOption)12 Method (java.lang.reflect.Method)2 Timestamp (java.sql.Timestamp)2 LocalDate (java.time.LocalDate)2 LocalDateTime (java.time.LocalDateTime)2 ArrayList (java.util.ArrayList)2 Collection (java.util.Collection)2 Date (java.util.Date)2 HashMap (java.util.HashMap)2 Iterator (java.util.Iterator)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 Map (java.util.Map)2 Entry (java.util.Map.Entry)2 TimeZone (java.util.TimeZone)2 FunCustodial (org.dbflute.FunCustodial)2 HpDerivingSubQueryInfo (org.dbflute.cbean.chelper.HpDerivingSubQueryInfo)2 HpFixedConditionQueryResolver (org.dbflute.cbean.chelper.HpFixedConditionQueryResolver)2 HpInvalidQueryInfo (org.dbflute.cbean.chelper.HpInvalidQueryInfo)2 HpQDRFunction (org.dbflute.cbean.chelper.HpQDRFunction)2