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

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


  private void addRevisionRestriction(
      Parameters rootParameters, String revisionProperty, String revisionEndProperty,
      boolean addAlias, boolean inclusive) {
    // e.revision <= _revision and (e.endRevision > _revision or e.endRevision is null)
    Parameters subParm = rootParameters.addSubParameters( "or" );
    rootParameters.addWhereWithNamedParam( revisionProperty, addAlias, inclusive ? "<=" : "<", REVISION_PARAMETER );
    subParm.addWhereWithNamedParam(
        revisionEndProperty + ".id",
        addAlias,
        inclusive ? ">" : ">=",
        REVISION_PARAMETER
    );
    subParm.addWhere( revisionEndProperty, addAlias, "is", "null", false );
  }
View Full Code Here


   * Create query restrictions used to retrieve actual data and deletions that took place at exactly given revision.
   */
  private void createValidAndRemovedDataRestrictions(
      GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
      MiddleIdData referencedIdData, QueryBuilder remQb) {
    final Parameters disjoint = remQb.getRootParameters().addSubParameters( "or" );
    // Restrictions to match all valid rows.
    final Parameters valid = disjoint.addSubParameters( "and" );
    // Restrictions to match all rows deleted at exactly given revision.
    final Parameters removed = disjoint.addSubParameters( "and" );
    // Excluding current revision, because we need to match data valid at the previous one.
    createValidDataRestrictions( globalCfg, auditStrategy, referencedIdData, remQb, valid, false );
    // e.revision = :revision
    removed.addWhereWithNamedParam( verEntCfg.getRevisionNumberPath(), false, "=", REVISION_PARAMETER );
    // e.revision_type = DEL
    removed.addWhereWithNamedParam( getRevisionTypePath(), false, "=", DEL_REVISION_TYPE_PARAMETER );
  }
View Full Code Here

    qb.addProjection(
        "new list", MIDDLE_ENTITY_ALIAS + ", " + REFERENCED_ENTITY_ALIAS + ", " + INDEX_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

   */
  private void createValidAndRemovedDataRestrictions(
      GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
      MiddleIdData referencedIdData, String versionsMiddleEntityName,
      QueryBuilder remQb, MiddleComponentData... componentData) {
    final Parameters disjoint = remQb.getRootParameters().addSubParameters( "or" );
    // Restrictions to match all valid rows.
    final Parameters valid = disjoint.addSubParameters( "and" );
    // Restrictions to match all rows deleted at exactly given revision.
    final Parameters removed = disjoint.addSubParameters( "and" );
    final String revisionPropertyPath = verEntCfg.getRevisionNumberPath();
    final String revisionTypePropName = getRevisionTypePath();
    // Excluding current revision, because we need to match data valid at the previous one.
    createValidDataRestrictions(
        globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, remQb, valid, false, componentData
    );
    // ee.revision = :revision
    removed.addWhereWithNamedParam( revisionPropertyPath, "=", REVISION_PARAMETER );
    // e.revision = :revision
    removed.addWhereWithNamedParam(
        REFERENCED_ENTITY_ALIAS + "." + revisionPropertyPath,
        false,
        "=",
        REVISION_PARAMETER
    );
    // f.revision = :revision
    removed.addWhereWithNamedParam(
        INDEX_ENTITY_ALIAS + "." + revisionPropertyPath,
        false,
        "=",
        REVISION_PARAMETER
    );
    // ee.revision_type = DEL
    removed.addWhereWithNamedParam( revisionTypePropName, "=", DEL_REVISION_TYPE_PARAMETER );
    // e.revision_type = DEL
    removed.addWhereWithNamedParam(
        REFERENCED_ENTITY_ALIAS + "." + revisionTypePropName,
        false,
        "=",
        DEL_REVISION_TYPE_PARAMETER
    );
    // f.revision_type = DEL
    removed.addWhereWithNamedParam(
        INDEX_ENTITY_ALIAS + "." + revisionTypePropName,
        false,
        "=",
        DEL_REVISION_TYPE_PARAMETER
    );
View Full Code Here

    // 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

   */
  private void createValidAndRemovedDataRestrictions(
      GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
      MiddleIdData referencedIdData, String versionsMiddleEntityName,
      QueryBuilder remQb, MiddleComponentData... componentData) {
    final Parameters disjoint = remQb.getRootParameters().addSubParameters( "or" );
    // Restrictions to match all valid rows.
    final Parameters valid = disjoint.addSubParameters( "and" );
    // Restrictions to match all rows deleted at exactly given revision.
    final Parameters removed = disjoint.addSubParameters( "and" );
    final String revisionPropertyPath = verEntCfg.getRevisionNumberPath();
    final String revisionTypePropName = getRevisionTypePath();
    // Excluding current revision, because we need to match data valid at the previous one.
    createValidDataRestrictions(
        globalCfg,
        auditStrategy,
        referencedIdData,
        versionsMiddleEntityName,
        remQb,
        valid,
        false,
        componentData
    );
    // ee.revision = :revision
    removed.addWhereWithNamedParam( revisionPropertyPath, "=", REVISION_PARAMETER );
    // e.revision = :revision
    removed.addWhereWithNamedParam(
        REFERENCED_ENTITY_ALIAS + "." + revisionPropertyPath,
        false,
        "=",
        REVISION_PARAMETER
    );
    // ee.revision_type = DEL
    removed.addWhereWithNamedParam( revisionTypePropName, "=", DEL_REVISION_TYPE_PARAMETER );
    // e.revision_type = DEL
    removed.addWhereWithNamedParam(
        REFERENCED_ENTITY_ALIAS + "." + revisionTypePropName,
        false,
        "=",
        DEL_REVISION_TYPE_PARAMETER
    );
View Full Code Here

  private void addRevisionRestriction(
      Parameters rootParameters, String revisionProperty, String revisionEndProperty,
      boolean addAlias, boolean inclusive) {
    // e.revision <= _revision and (e.endRevision > _revision or e.endRevision is null)
    Parameters subParm = rootParameters.addSubParameters( "or" );
    rootParameters.addWhereWithNamedParam( revisionProperty, addAlias, inclusive ? "<=" : "<", REVISION_PARAMETER );
    subParm.addWhereWithNamedParam(
        revisionEndProperty + ".id",
        addAlias,
        inclusive ? ">" : ">=",
        REVISION_PARAMETER
    );
    subParm.addWhere( revisionEndProperty, addAlias, "is", "null", false );
  }
View Full Code Here

  private void addRevisionRestriction(
      Parameters rootParameters, String revisionProperty, String revisionEndProperty,
      boolean addAlias, boolean inclusive) {
    // e.revision <= _revision and (e.endRevision > _revision or e.endRevision is null)
    Parameters subParm = rootParameters.addSubParameters( "or" );
    rootParameters.addWhereWithNamedParam( revisionProperty, addAlias, inclusive ? "<=" : "<", REVISION_PARAMETER );
    subParm.addWhereWithNamedParam(
        revisionEndProperty + ".id", addAlias, inclusive ? ">" : ">=", REVISION_PARAMETER
    );
    subParm.addWhere( revisionEndProperty, addAlias, "is", "null", false );
  }
View Full Code Here

  @Override
  public void addToQuery(
      AuditConfiguration verCfg, AuditReaderImplementor versionsReader, String entityName,
      QueryBuilder qb, Parameters parameters) {
    Parameters orParameters = parameters.addSubParameters( Parameters.OR );

    if ( criterions.size() == 0 ) {
      orParameters.addWhere( "0", false, "=", "1", false );
    }
    else {
      for ( AuditCriterion criterion : criterions ) {
        criterion.addToQuery( verCfg, versionsReader, entityName, qb, orParameters );
      }
View Full Code Here

    // create a subquery builder
    // SELECT max(e.revision) FROM versionsReferencedEntity e2
    QueryBuilder maxERevQb = rootQueryBuilder.newSubQueryBuilder( idData.getAuditEntityName(), alias2 );
    maxERevQb.addProjection( "max", revisionPropertyPath, false );
    // WHERE
    Parameters maxERevQbParameters = maxERevQb.getRootParameters();
    // e2.revision <= :revision
    maxERevQbParameters.addWhereWithNamedParam( revisionPropertyPath, inclusive ? "<=" : "<", REVISION_PARAMETER );
    // e2.id_ref_ed = e.id_ref_ed
    idData.getOriginalMapper().addIdsEqualToQuery(
        maxERevQbParameters,
        alias1 + "." + originalIdPropertyName, alias2 + "." + originalIdPropertyName
    );
View Full Code Here

TOP

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

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.