Examples of JDBCAbstractEntityBridge


Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

      addLeftJoinPath(path);

      StringBuffer sql = (StringBuffer) data;
      JDBCAbstractCMRFieldBridge cmrField = (JDBCAbstractCMRFieldBridge) path.getCMRField();
      JDBCAbstractEntityBridge relatedEntity = (JDBCAbstractEntityBridge) cmrField.getRelatedEntity();
      String alias = aliasManager.getAlias(path.getPath());
      SQLUtil.getIsNullClause(node.not, relatedEntity.getPrimaryKeyFields(), alias, sql);

      return data;
   }
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

   public Object visit(ASTMemberOf node, Object data)
   {
      Node member = node.jjtGetChild(0);
      ASTPath colPath = (ASTPath) node.jjtGetChild(1);
      JDBCAbstractEntityBridge colEntity = (JDBCAbstractEntityBridge) colPath.getEntity();

      StringBuffer sql = (StringBuffer) data;

      if(node.not)
      {
         sql.append(SQLUtil.NOT);
      }

      sql.append(SQLUtil.EXISTS).append('(').append(SQLUtil.SELECT);

      if(member instanceof ASTParameter)
      {
         ASTParameter toParam = (ASTParameter) member;
         verifyParameterEntityType(toParam.number, colEntity);
         inputParameters.addAll(QueryParameter.createParameters(toParam.number - 1, colEntity));

         String parentAlias = aliasManager.getAlias(colPath.getPath(0));
         String localParentAlias = aliasManager.getAlias(colPath.getPath(0) + "_local");
         JDBCAbstractEntityBridge parentEntity = (JDBCAbstractEntityBridge) colPath.getEntity(0);
         SQLUtil.getColumnNamesClause(parentEntity.getPrimaryKeyFields(), localParentAlias, sql);
         sql.append(SQLUtil.FROM)
            .append(parentEntity.getQualifiedTableName()).append(' ').append(localParentAlias);
         innerJoinPath(colPath, sql);

         sql.append(SQLUtil.WHERE);

         JDBCAbstractEntityBridge col0 = (JDBCAbstractEntityBridge)colPath.getEntity(0);
         SQLUtil.getSelfCompareWhereClause(col0.getPrimaryKeyFields(), parentAlias, localParentAlias, sql);
         sql.append(SQLUtil.AND);

         String localColAlias = aliasManager.getAlias(colPath.getPath() + "_local");
         SQLUtil.getWhereClause(colEntity.getPrimaryKeyFields(), localColAlias, sql);
      }
      else
      {
         ASTPath memberPath = (ASTPath) member;
         JDBCAbstractEntityBridge memberEntity = (JDBCAbstractEntityBridge) memberPath.getEntity();

         if(!memberEntity.equals(colEntity))
         {
            throw new IllegalStateException("Member must be if the same type as the collection, got: member="
               +
               memberEntity.getEntityName()
               + ", collection=" + colEntity.getEntityName());
         }

         String memberAlias = aliasManager.getAlias(memberPath.getPath());

         if(memberPath.size() > 1)
         {
            String parentAlias = aliasManager.getAlias(memberPath.getPath(0) + "_local");
            JDBCAbstractEntityBridge parentEntity = (JDBCAbstractEntityBridge) memberPath.getEntity(0);
            SQLUtil.getColumnNamesClause(parentEntity.getPrimaryKeyFields(), parentAlias, sql);
            sql.append(SQLUtil.FROM)
               .append(parentEntity.getQualifiedTableName()).append(' ').append(parentAlias);
            innerJoinPath(memberPath, sql);
            innerJoinPath(colPath, sql);
         }
         else if(colPath.size() > 1)
         {
            String parentAlias = aliasManager.getAlias(colPath.getPath(0) + "_local");
            JDBCAbstractEntityBridge parentEntity = (JDBCAbstractEntityBridge) colPath.getEntity(0);
            SQLUtil.getColumnNamesClause(parentEntity.getPrimaryKeyFields(), parentAlias, sql);
            sql.append(SQLUtil.FROM)
               .append(parentEntity.getQualifiedTableName()).append(' ').append(parentAlias);
            innerJoinPath(colPath, sql);
         }
         else
         {
            throw new IllegalStateException(
               "There should be collection valued path expression, not identification variable.");
         }

         sql.append(SQLUtil.WHERE);

         JDBCAbstractEntityBridge member0 = (JDBCAbstractEntityBridge)memberPath.getEntity(0);
         String colAliasLocal = aliasManager.getAlias(colPath.getPath() + "_local");
         if(memberPath.size() > 1)
         {
            String memberAliasLocal = aliasManager.getAlias(memberPath.getPath() + "_local");
            SQLUtil.getSelfCompareWhereClause(colEntity.getPrimaryKeyFields(),
               memberAliasLocal,
               colAliasLocal,
               sql);

            sql.append(SQLUtil.AND);

            String member0Alias = aliasManager.getAlias(memberPath.getPath(0));
            String member0AliasLocal = aliasManager.getAlias(memberPath.getPath(0) + "_local");
            SQLUtil.getSelfCompareWhereClause(member0.getPrimaryKeyFields(),
               member0Alias,
               member0AliasLocal,
               sql);
         }
         else
         {
            SQLUtil.getSelfCompareWhereClause(member0.getPrimaryKeyFields(), memberAlias, colAliasLocal, sql);

            sql.append(SQLUtil.AND);

            String col0Alias = aliasManager.getAlias(colPath.getPath(0));
            String col0AliasLocal = aliasManager.getAlias(colPath.getPath(0) + "_local");
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

      {
         String curPath = path.getPath(i);
         final String joinAlias = aliasManager.getAlias(curPath + "_local");

         final JDBCAbstractCMRFieldBridge cmrField = (JDBCAbstractCMRFieldBridge) path.getCMRField(i);
         final JDBCAbstractEntityBridge joinEntity = (JDBCAbstractEntityBridge) cmrField.getRelatedEntity();

         JDBCRelationMetaData relation = cmrField.getMetaData().getRelationMetaData();

         String join = " INNER JOIN ";

         if(relation.isTableMappingStyle())
         {
            String relTableAlias = aliasManager.getRelationTableAlias(curPath + "_local");
            sql.append(join)
               .append(cmrField.getQualifiedTableName())
               .append(' ')
               .append(relTableAlias)
               .append(" ON ");
            SQLUtil.getRelationTableJoinClause(cmrField, leftAlias, relTableAlias, sql);

            sql.append(join)
               .append(joinEntity.getQualifiedTableName())
               .append(' ')
               .append(joinAlias)
               .append(" ON ");
            SQLUtil.getRelationTableJoinClause(cmrField.getRelatedCMRField(), joinAlias, relTableAlias, sql);
         }
         else
         {
            sql.append(join)
               .append(joinEntity.getQualifiedTableName())
               .append(' ')
               .append(joinAlias)
               .append(" ON ");

            SQLUtil.getJoinClause(cmrField, leftAlias, joinAlias, sql);
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

      {
         args = new Object[]{node.distinct, node.jjtGetChild(0).jjtAccept(this, new StringBuffer()).toString()};
      }
      else
      {
         JDBCAbstractEntityBridge entity = (JDBCAbstractEntityBridge) cntPath.getEntity();
         final JDBCFieldBridge[] pkFields = entity.getPrimaryKeyFields();
         if(pkFields.length > 1)
         {
            countCompositePk = true;
            forceDistinct = node.distinct.length() > 0;

            addLeftJoinPath(cntPath);

            String alias = aliasManager.getAlias(cntPath.getPath());
            SQLUtil.getColumnNamesClause(entity.getPrimaryKeyFields(),
               alias,
               buf);

            return buf;
         }
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

   }

   public Object visit(ASTRangeVariableDeclaration node, Object data)
   {
      ASTAbstractSchema schema = (ASTAbstractSchema) node.jjtGetChild(0);
      JDBCAbstractEntityBridge entity = (JDBCAbstractEntityBridge) schema.entity;
      ASTIdentifier id = (ASTIdentifier) node.jjtGetChild(1);
      declareTable(id.identifier, entity.getQualifiedTableName());
      return data;
   }
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

      }

      ASTPath fromPath = (ASTPath) fromNode;
      addLeftJoinPath(fromPath);
      String fromAlias = aliasManager.getAlias(fromPath.getPath());
      JDBCAbstractEntityBridge fromEntity = (JDBCAbstractEntityBridge) fromPath.getEntity();

      if(toNode instanceof ASTParameter)
      {
         ASTParameter toParam = (ASTParameter) toNode;

         // can only compare like kind entities
         verifyParameterEntityType(toParam.number, fromEntity);

         inputParameters.addAll(QueryParameter.createParameters(toParam.number - 1, fromEntity));

         SQLUtil.getWhereClause(fromEntity.getPrimaryKeyFields(), fromAlias, buf);
      }
      else
      {
         ASTPath toPath = (ASTPath) toNode;
         addLeftJoinPath(toPath);
         String toAlias = aliasManager.getAlias(toPath.getPath());
         JDBCAbstractEntityBridge toEntity = (JDBCAbstractEntityBridge) toPath.getEntity();

         // can only compare like kind entities
         if(!fromEntity.equals(toEntity))
         {
            throw new IllegalStateException("Only like types can be "
               +
               "compared: from entity="
               +
               fromEntity.getEntityName()
               + " to entity=" + toEntity.getEntityName());
         }

         SQLUtil.getSelfCompareWhereClause(fromEntity.getPrimaryKeyFields(), fromAlias, toAlias, buf);
      }
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

               final String joinAlias = aliasManager.getAlias(curPath);

               if(joinedAliases.add(joinAlias))
               {
                  final JDBCAbstractCMRFieldBridge cmrField = (JDBCAbstractCMRFieldBridge) path.getCMRField(i);
                  final JDBCAbstractEntityBridge joinEntity = (JDBCAbstractEntityBridge) cmrField.getRelatedEntity();

                  JDBCRelationMetaData relation = cmrField.getMetaData().getRelationMetaData();

                  String join = (path.innerJoin ? " INNER JOIN " : " LEFT OUTER JOIN ");

                  if(relation.isTableMappingStyle())
                  {
                     String relTableAlias = aliasManager.getRelationTableAlias(curPath);
                     sql.append(join)
                        .append(cmrField.getQualifiedTableName())
                        .append(' ')
                        .append(relTableAlias)
                        .append(" ON ");
                     SQLUtil.getRelationTableJoinClause(cmrField, leftAlias, relTableAlias, sql);

                     sql.append(join)
                        .append(joinEntity.getQualifiedTableName())
                        .append(' ')
                        .append(joinAlias)
                        .append(" ON ");
                     SQLUtil.getRelationTableJoinClause(cmrField.getRelatedCMRField(), joinAlias, relTableAlias, sql);
                  }
                  else
                  {
                     sql.append(join)
                        .append(joinEntity.getQualifiedTableName())
                        .append(' ')
                        .append(joinAlias)
                        .append(" ON ");

                     SQLUtil.getJoinClause(cmrField, leftAlias, joinAlias, sql);
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

   public static StringBuffer getJoinClause(JDBCAbstractCMRFieldBridge cmrField,
                                            String parentAlias,
                                            String childAlias,
                                            StringBuffer buf)
   {
      JDBCAbstractEntityBridge parentEntity = cmrField.getEntity();
      JDBCAbstractEntityBridge childEntity = (JDBCAbstractEntityBridge)cmrField.getRelatedEntity();

      JDBCFieldBridge parentField;
      JDBCFieldBridge childField;

      if(cmrField.hasForeignKey())
      {
         // parent has the foreign keys
         JDBCFieldBridge[] parentFkFields = cmrField.getForeignKeyFields();
         int i = 0;
         while(i < parentFkFields.length)
         {
            parentField = parentFkFields[i++];
            childField = (JDBCFieldBridge)childEntity.getFieldByName(parentField.getFieldName());
            getJoinClause(parentField, parentAlias, childField, childAlias, buf);
            if(i < parentFkFields.length)
               buf.append(AND);
         }
      }
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

   public static StringBuffer getRelationTableJoinClause(JDBCAbstractCMRFieldBridge cmrField,
                                                         String parentAlias,
                                                         String relationTableAlias,
                                                         StringBuffer buf)
   {
      JDBCAbstractEntityBridge parentEntity = cmrField.getEntity();
      JDBCFieldBridge parentField;
      JDBCFieldBridge relationField;

      // parent to relation table join
      JDBCFieldBridge[] parentFields = cmrField.getTableKeyFields();
      int i = 0;
      while(i < parentFields.length)
      {
         relationField = parentFields[i++];
         parentField = (JDBCFieldBridge)parentEntity.getFieldByName(relationField.getFieldName());
         getJoinClause(parentField, parentAlias, relationField, relationTableAlias, buf);
         if(i < parentFields.length)
            buf.append(AND);
      }
      return buf;
View Full Code Here

Examples of org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractEntityBridge

      JDBCEntityPersistenceStore manager,
      Class intf,
      String fieldName)
   {
      Catalog catalog = manager.getCatalog();
      JDBCAbstractEntityBridge entityBridge = (JDBCAbstractEntityBridge)catalog.getEntityByInterface(intf);
      if(entityBridge == null)
      {
         throw new IllegalArgumentException("Entity not found in application " +
            "catalog with interface=" + intf.getName());
      }

      JDBCFieldBridge cmpField = (JDBCFieldBridge)entityBridge.getFieldByName(fieldName);
      if(cmpField == null)
      {
         throw new IllegalArgumentException("cmpField not found:" +
            " cmpFieldName=" + fieldName +
            " entityName=" + entityBridge.getEntityName());
      }
      return cmpField;
   }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.