Package org.hibernate.envers.internal.tools.query

Examples of org.hibernate.envers.internal.tools.query.QueryBuilder


      String originalIdPropertyName,
      String alias1,
      boolean inclusive,
      MiddleComponentData... componentDatas) {
    // SELECT max(ee2.revision) FROM middleEntity ee2
    QueryBuilder maxEeRevQb = rootQueryBuilder.newSubQueryBuilder(
        versionsMiddleEntityName,
        MIDDLE_ENTITY_ALIAS_DEF_AUD_STR
    );
    maxEeRevQb.addProjection( "max", revisionPropertyPath, false );
    // WHERE
    Parameters maxEeRevQbParameters = maxEeRevQb.getRootParameters();
    // ee2.revision <= :revision
    maxEeRevQbParameters.addWhereWithNamedParam( revisionPropertyPath, inclusive ? "<=" : "<", REVISION_PARAMETER );
    // ee2.originalId.* = ee.originalId.*
    String ee2OriginalIdPropertyPath = MIDDLE_ENTITY_ALIAS_DEF_AUD_STR + "." + originalIdPropertyName;
    referencingIdData.getPrefixedMapper().addIdsEqualToQuery(
View Full Code Here


    CriteriaTools.checkPropertyNotARelation( auditCfg, entityName, propertyName );

    // Make sure our conditions are ANDed together even if the parent Parameters have a different connective
    Parameters subParams = parameters.addSubParameters( Parameters.AND );
    // This will be the aggregated query, containing all the specified conditions
    QueryBuilder subQb = qb.newSubQueryBuilder();

    // Adding all specified conditions both to the main query, as well as to the
    // aggregated one.
    for ( AuditCriterion versionsCriteria : criterions ) {
      versionsCriteria.addToQuery( auditCfg, versionsReader, entityName, qb, subParams );
      versionsCriteria.addToQuery( auditCfg, versionsReader, entityName, subQb, subQb.getRootParameters() );
    }

    // Setting the desired projection of the aggregated query
    switch ( mode ) {
      case MIN:
        subQb.addProjection( "min", propertyName, false );
        break;
      case MAX:
        subQb.addProjection( "max", propertyName, false );
    }

    // Correlating subquery with the outer query by entity id. See JIRA HHH-7827.
    if ( correlate ) {
      final String originalIdPropertyName = auditCfg.getAuditEntCfg().getOriginalIdPropName();
      auditCfg.getEntCfg().get( entityName ).getIdMapper().addIdsEqualToQuery(
          subQb.getRootParameters(),
          subQb.getRootAlias() + "." + originalIdPropertyName,
          qb.getRootAlias() + "." + originalIdPropertyName
      );
    }

    // Adding the constrain on the result of the aggregated criteria
View Full Code Here

     *
     * (only non-deleted entities and associations)
     *     ee.revision_type != DEL AND
     *     e.revision_type != DEL
     */
    final QueryBuilder commonPart = commonQueryPart(
        referencedIdData,
        versionsMiddleEntityName,
        verEntCfg.getOriginalIdPropName()
    );
    final QueryBuilder validQuery = commonPart.deepCopy();
    final QueryBuilder removedQuery = commonPart.deepCopy();
    createValidDataRestrictions(
        globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, validQuery,
        validQuery.getRootParameters(), true, componentData
    );
    createValidAndRemovedDataRestrictions(
View Full Code Here

  private QueryBuilder commonQueryPart(
      MiddleIdData referencedIdData, String versionsMiddleEntityName,
      String originalIdPropertyName) {
    final String eeOriginalIdPropertyPath = MIDDLE_ENTITY_ALIAS + "." + originalIdPropertyName;
    // SELECT new list(ee) FROM middleEntity ee
    QueryBuilder qb = new QueryBuilder( versionsMiddleEntityName, MIDDLE_ENTITY_ALIAS );
    qb.addFrom( referencedIdData.getAuditEntityName(), REFERENCED_ENTITY_ALIAS );
    qb.addProjection( "new list", MIDDLE_ENTITY_ALIAS + ", " + REFERENCED_ENTITY_ALIAS, false, false );
    // WHERE
    final Parameters rootParameters = qb.getRootParameters();
    // ee.id_ref_ed = e.id_ref_ed
    referencedIdData.getPrefixedMapper().addIdsEqualToQuery(
        rootParameters, eeOriginalIdPropertyPath, referencedIdData.getOriginalMapper(),
        REFERENCED_ENTITY_ALIAS + "." + originalIdPropertyName
    );
View Full Code Here

     *
     *     AND
     * (only non-deleted entities)
     *     e.revision_type != DEL
     */
    final QueryBuilder commonPart = commonQueryPart( verEntCfg.getAuditEntityName( referencedEntityName ) );
    final QueryBuilder validQuery = commonPart.deepCopy();
    final QueryBuilder removedQuery = commonPart.deepCopy();
    createValidDataRestrictions(
        globalCfg, auditStrategy, referencedIdData, validQuery, validQuery.getRootParameters()
    );
    createValidAndRemovedDataRestrictions( globalCfg, auditStrategy, referencedIdData, removedQuery );

View Full Code Here

  /**
   * Compute common part for both queries.
   */
  private QueryBuilder commonQueryPart(String versionsReferencedEntityName) {
    // SELECT e FROM versionsEntity e
    final QueryBuilder qb = new QueryBuilder( versionsReferencedEntityName, REFERENCED_ENTITY_ALIAS );
    qb.addProjection( null, REFERENCED_ENTITY_ALIAS, false, false );
    // WHERE
    // e.id_ref_ed = :id_ref_ed
    referencingIdData.getPrefixedMapper().addNamedIdEqualsToQuery( qb.getRootParameters(), null, true );
    return qb;
  }
View Full Code Here

     *     AND
     *
     * (only non-deleted entities and associations)
     *     ee.revision_type != DEL
     */
    final QueryBuilder commonPart = commonQueryPart( versionsMiddleEntityName );
    final QueryBuilder validQuery = commonPart.deepCopy();
    final QueryBuilder removedQuery = commonPart.deepCopy();
    createValidDataRestrictions(
        auditStrategy, versionsMiddleEntityName, validQuery, validQuery.getRootParameters(), true, componentData
    );
    createValidAndRemovedDataRestrictions( auditStrategy, versionsMiddleEntityName, removedQuery, componentData );

View Full Code Here

  /**
   * Compute common part for both queries.
   */
  private QueryBuilder commonQueryPart(String versionsMiddleEntityName) {
    // SELECT ee FROM middleEntity ee
    final QueryBuilder qb = new QueryBuilder( versionsMiddleEntityName, MIDDLE_ENTITY_ALIAS );
    qb.addProjection( null, MIDDLE_ENTITY_ALIAS, false, false );
    // WHERE
    // ee.originalId.id_ref_ing = :id_ref_ing
    referencingIdData.getPrefixedMapper().addNamedIdEqualsToQuery(
        qb.getRootParameters(),
        verEntCfg.getOriginalIdPropName(),
        true
    );
    return qb;
  }
View Full Code Here

     *     AND
     *
     * (only non-deleted entities and associations)
     *     ee.revision_type != DEL
     */
    final QueryBuilder commonPart = commonQueryPart(
        referencedIdData,
        versionsMiddleEntityName,
        verEntCfg.getOriginalIdPropName()
    );
    final QueryBuilder validQuery = commonPart.deepCopy();
    final QueryBuilder removedQuery = commonPart.deepCopy();
    createValidDataRestrictions(
        auditStrategy, versionsMiddleEntityName, validQuery, validQuery.getRootParameters(), componentData
    );
    createValidAndRemovedDataRestrictions( auditStrategy, versionsMiddleEntityName, removedQuery, componentData );

View Full Code Here

  private QueryBuilder commonQueryPart(
      MiddleIdData referencedIdData, String versionsMiddleEntityName,
      String originalIdPropertyName) {
    final String eeOriginalIdPropertyPath = MIDDLE_ENTITY_ALIAS + "." + originalIdPropertyName;
    // SELECT new list(ee) FROM middleEntity ee
    final QueryBuilder qb = new QueryBuilder( versionsMiddleEntityName, MIDDLE_ENTITY_ALIAS );
    qb.addFrom( referencedIdData.getEntityName(), REFERENCED_ENTITY_ALIAS );
    qb.addProjection( "new list", MIDDLE_ENTITY_ALIAS + ", " + REFERENCED_ENTITY_ALIAS, false, false );
    // WHERE
    final Parameters rootParameters = qb.getRootParameters();
    // ee.id_ref_ed = e.id_ref_ed
    referencedIdData.getPrefixedMapper().addIdsEqualToQuery(
        rootParameters, eeOriginalIdPropertyPath, referencedIdData.getOriginalMapper(), REFERENCED_ENTITY_ALIAS
    );
    // ee.originalId.id_ref_ing = :id_ref_ing
View Full Code Here

TOP

Related Classes of org.hibernate.envers.internal.tools.query.QueryBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.