Examples of JDBCEntityBridge


Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

    public Object visit(ASTRangeVariableDeclaration node, Object data) {
        StringBuffer buf = (StringBuffer) data;

        ASTAbstractSchema schema = (ASTAbstractSchema) node.jjtGetChild(0);
        JDBCEntityBridge entity = (JDBCEntityBridge) schema.entity;
        ASTIdentifier id = (ASTIdentifier) node.jjtGetChild(1);

        String alias = aliasManager.getAlias(id.identifier);
        buf.append(entity.getQualifiedTableName())
                .append(' ')
                .append(alias);
        leftJoins(id.identifier, buf);

        if (onFindCMRJoin != null && alias.equals(selectAlias)) {
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

                addJoinPath(path);
                selectAlias = aliasManager.getAlias(path.getPath(path.size() - 2));
                SQLUtil.getColumnNamesClause(selectField, selectAlias, buf);
            } else {
                // set the select object
                JDBCEntityBridge selectEntity = (JDBCEntityBridge) path.getEntity();
                selectManager = (JDBCStoreManager) selectEntity.getManager();
                selectObject = selectEntity;
                setTypeFactory(selectManager.getJDBCTypeFactory());
                selectEntity(path, node.distinct, buf);
            }
        } else {
            // the function should take a path expression as a parameter
            path = getPathFromChildren(child0);

            if (path == null) {
                throw MESSAGES.functionInSelectNoPath();
            }

            if (path.isCMPField()) {
                JDBCCMPFieldBridge selectField = (JDBCCMPFieldBridge) path.getCMPField();
                selectManager = (JDBCStoreManager) selectField.getManager();
                if (selectField.getJDBCType().hasMapper())
                    this.functionJDBCType = selectField.getJDBCType();
            } else if (path.isCMRField()) {
                JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge) path.getCMRField();
                selectManager = (JDBCStoreManager) cmrField.getEntity().getManager();
                addJoinPath(path);
            } else {
                final JDBCEntityBridge entity = (JDBCEntityBridge) path.getEntity();
                selectManager = (JDBCStoreManager) entity.getManager();
                addJoinPath(path);
            }

            setTypeFactory(selectManager.getJDBCTypeFactory());
            selectObject = child0;
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        // setup compare to vars first, so we can compare types in from vars
        ASTPath toPath = (ASTPath) node.jjtGetChild(1);

        JDBCCMRFieldBridge toCMRField = (JDBCCMRFieldBridge) toPath.getCMRField();

        JDBCEntityBridge toChildEntity = (JDBCEntityBridge) toPath.getEntity();

        String pathStr = toPath.getPath(toPath.size() - 2);
        String toParentAlias = aliasManager.getAlias(pathStr);
        String toChildAlias = aliasManager.getAlias(toPath.getPath());
        String relationTableAlias = null;
        if (toCMRField.getRelationMetaData().isTableMappingStyle()) {
            relationTableAlias = aliasManager.getRelationTableAlias(toPath.getPath());
        }

        // setup from variables
        String fromAlias = null;
        int fromParamNumber = -1;
        if (node.jjtGetChild(0) instanceof ASTParameter) {
            ASTParameter fromParam = (ASTParameter) node.jjtGetChild(0);

            // can only compare like kind entities
            verifyParameterEntityType(fromParam.number, toChildEntity);

            fromParamNumber = fromParam.number;
        } else {
            ASTPath fromPath = (ASTPath) node.jjtGetChild(0);
            addJoinPath(fromPath);

            JDBCEntityBridge fromEntity = (JDBCEntityBridge) fromPath.getEntity();
            fromAlias = aliasManager.getAlias(fromPath.getPath());

            // can only compare like kind entities
            if (!fromEntity.equals(toChildEntity)) {
                throw CmpMessages.MESSAGES.onlyLikeTypesCanBeCompared(fromEntity.getEntityName(), toChildEntity.getEntityName());
            }
        }

        // add the path to the list of paths to left join
        addLeftJoinPath(pathStr, toPath);
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        Object[] args;
        final ASTPath cntPath = (ASTPath) node.jjtGetChild(0);
        if (cntPath.isCMPField()) {
            args = new Object[]{node.distinct, new NodeStringWrapper(cntPath)};
        } else {
            JDBCEntityBridge entity = (JDBCEntityBridge) cntPath.getEntity();
            final JDBCFieldBridge[] pkFields = entity.getPrimaryKeyFields();
            if (pkFields.length > 1) {
                countCompositePk = true;
                forceDistinct = node.distinct.length() > 0;
                selectEntity(cntPath, forceDistinct, buf);
                return buf;
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        CMPFieldBridge cmpField = path.getCMPField();
        if (selectObject instanceof JDBCCMPFieldBridge && cmpField == selectObject) {
            selected = true;
        } else if (selectObject instanceof JDBCEntityBridge) {
            JDBCEntityBridge entity = (JDBCEntityBridge) selectObject;
            JDBCFieldBridge[] pkFields = entity.getPrimaryKeyFields();
            for (int pkInd = 0; pkInd < pkFields.length; ++pkInd) {
                if (pkFields[pkInd] == cmpField) {
                    selected = true;
                    break;
                }
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        return selected;
    }

    private void selectEntity(ASTPath path, boolean distinct, StringBuffer buf) {
        JDBCEntityBridge selectEntity = (JDBCEntityBridge) path.getEntity();

        StringBuffer columnNamesClause = new StringBuffer(200);
        addJoinPath(path);
        selectAlias = aliasManager.getAlias(path.getPath());

        // get a list of all fields to be loaded
        // get the identifier for this field
        SQLUtil.getColumnNamesClause(selectEntity.getPrimaryKeyFields(), selectAlias, columnNamesClause);

        if (readAhead.isOnFind()) {
            String eagerLoadGroupName = readAhead.getEagerLoadGroup();
            boolean[] loadGroupMask = selectEntity.getLoadGroupMask(eagerLoadGroupName);
            if (distinct)
                SQLUtil.appendSearchableColumnNamesClause(selectEntity.getTableFields(), loadGroupMask, selectAlias, columnNamesClause);
            else
                SQLUtil.appendColumnNamesClause(selectEntity.getTableFields(), loadGroupMask, selectAlias, columnNamesClause);

            try {
                leftJoinCMRList = JDBCAbstractQueryCommand.getLeftJoinCMRNodes(
                        selectEntity, path.getPath(), readAhead.getLeftJoins(), declaredPaths);
            } catch (Exception e) {
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

            cmrField.removeRelation(ctx, relatedId);

            return null;
        } else if (CMRMessage.SCHEDULE_FOR_CASCADE_DELETE == relationshipMessage) {
            JDBCEntityBridge entity = (JDBCEntityBridge) cmrField.getEntity();
            entity.scheduleForCascadeDelete(ctx);
            return null;
        } else if (CMRMessage.SCHEDULE_FOR_BATCH_CASCADE_DELETE == relationshipMessage) {
            JDBCEntityBridge entity = (JDBCEntityBridge) cmrField.getEntity();
            entity.scheduleForBatchCascadeDelete(ctx);
            return null;
        } else {
            // this should not be possible we are using a type safe enum
            throw CmpMessages.MESSAGES.unknownCmpRelationshipMessage(relationshipMessage);
        }
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        }

        int offset = toInt(parameters, compiler.getOffsetParam(), compiler.getOffsetValue());
        int limit = toInt(parameters, compiler.getLimitParam(), compiler.getLimitValue());

        JDBCEntityBridge selectEntity = null;
        JDBCCMPFieldBridge selectField = null;
        SelectFunction selectFunction = null;
        if (compiler.isSelectEntity()) {
            selectEntity = (JDBCEntityBridge) compiler.getSelectEntity();
        } else if (compiler.isSelectField()) {
            selectField = (JDBCCMPFieldBridge) compiler.getSelectField();
        } else {
            selectFunction = compiler.getSelectFunction();
        }

        boolean[] mask;
        List leftJoinCMRList;
        JDBCReadAheadMetaData readahead = metadata.getReadAhead();
        if (selectEntity != null && readahead.isOnFind()) {
            mask = selectEntity.getLoadGroupMask(readahead.getEagerLoadGroup());
            boolean modifiedMask = false;
            leftJoinCMRList = compiler.getLeftJoinCMRList();

            // exclude non-searchable columns if distinct is used
            if (compiler.isSelectDistinct()) {
                JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                for (int i = 0; i < tableFields.length; ++i) {
                    if (mask[i] && !tableFields[i].getJDBCType().isSearchable()) {
                        if (!modifiedMask) {
                            boolean[] original = mask;
                            mask = new boolean[original.length];
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

                metaData.getJDBCApplication().getValueClasses(),
                metaData.getJDBCApplication().getUserTypeMappings()
        );

        // create the bridge between java land and this engine (sql land)
        entityBridge = new JDBCEntityBridge(metaData, this);
        entityBridge.init();
        bridgeInvocationHandler = new EntityBridgeInvocationHandler(createFieldMap(), createSelectorMap());

        getCatalog().addEntity(entityBridge);
View Full Code Here

Examples of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

        setSQL(compiler.getSQL());

        // set select object
        if (compiler.isSelectEntity()) {
            JDBCEntityBridge selectEntity = (JDBCEntityBridge) compiler.getSelectEntity();

            // set the select entity
            setSelectEntity(selectEntity);

            // set the preload fields
            JDBCReadAheadMetaData readahead = metadata.getReadAhead();
            if (readahead.isOnFind()) {
                setEagerLoadGroup(readahead.getEagerLoadGroup());
                setOnFindCMRList(compiler.getLeftJoinCMRList());

                // exclude non-searchable columns if distinct is used
                if (compiler.isSelectDistinct()) {
                    boolean[] mask = getEagerLoadMask();
                    JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                    for (int i = 0; i < tableFields.length; ++i) {
                        if (mask[i] && !tableFields[i].getJDBCType().isSearchable()) {
                            mask[i] = false;
                        }
                    }
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.