Examples of JDBCFieldBridge


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

        if (fkFieldsByRelatedPKFields.size() > 0) {
            JDBCFieldBridge[] pkFields = relatedEntity.getPrimaryKeyFields();
            List fkList = new ArrayList(pkFields.length);
            List relatedPKList = new ArrayList(pkFields.length);
            for (int i = 0; i < pkFields.length; ++i) {
                JDBCFieldBridge relatedPKField = pkFields[i];
                JDBCFieldBridge fkField = (JDBCCMPFieldBridge2) fkFieldsByRelatedPKFields.remove(relatedPKField);
                fkList.add(fkField);
                relatedPKList.add(relatedPKField);
            }
            foreignKeyFields = (JDBCCMPFieldBridge2[]) fkList.toArray(new JDBCCMPFieldBridge2[fkList.size()]);
            relatedPKFields =
View Full Code Here

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

                        // read the preload fields
                        if (eagerLoadMask != null) {
                            JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                            for (int i = 0; i < eagerLoadMask.length; i++) {
                                if (eagerLoadMask[i]) {
                                    JDBCFieldBridge field = tableFields[i];
                                    ref[0] = null;

                                    // read the value and store it in the readahead cache
                                    index = field.loadArgumentResults(rs, index, ref);

                                    if (addPk) {
                                        selectReadAheadCache.addPreloadData(curPk, field, ref[0]);
                                    }
                                }
View Full Code Here

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

            // load eager load group
            if (node.eagerLoadMask != null) {
                JDBCFieldBridge[] tableFields = relatedEntity.getTableFields();
                for (int fieldInd = 0; fieldInd < tableFields.length; ++fieldInd) {
                    if (node.eagerLoadMask[fieldInd]) {
                        JDBCFieldBridge field = tableFields[fieldInd];
                        ref[0] = null;
                        index = field.loadArgumentResults(rs, index, ref);

                        if (cacheRelatedData) {
                            if (log.isTraceEnabled()) {
                                log.trace("Caching " +
                                        relatedEntity.getEntityName() +
                                        '[' +
                                        relatedId +
                                        "]." +
                                        field.getFieldName() + "=" + ref[0]);
                            }
                            relatedCache.addPreloadData(relatedId, field, ref[0]);
                        }
                    }
                }
View Full Code Here

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

                        // read the preload fields
                        if (eagerLoadMask != null) {
                            JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                            for (int i = 0; i < eagerLoadMask.length; i++) {
                                if (eagerLoadMask[i]) {
                                    JDBCFieldBridge field = tableFields[i];
                                    ref[0] = null;

                                    // read the value and store it in the readahead cache
                                    index = field.loadArgumentResults(rs, index, ref);

                                    if (addPk) {
                                        selectReadAheadCache.addPreloadData(pk, field, ref[0]);
                                    }
                                }
View Full Code Here

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

    protected void initInsertFields() {
        JDBCFieldBridge[] fields = entity.getTableFields();
        List insertFieldsList = new ArrayList(fields.length);
        for (int i = 0; i < fields.length; i++) {
            JDBCFieldBridge field = fields[i];
            if (isInsertField(field))
                insertFieldsList.add(field);
        }

        insertFields = (JDBCFieldBridge[]) insertFieldsList.toArray(new JDBCFieldBridge[insertFieldsList.size()]);
View Full Code Here

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

            // load eager load group
            if (node.eagerLoadMask != null) {
                JDBCFieldBridge[] tableFields = relatedEntity.getTableFields();
                for (int fieldInd = 0; fieldInd < tableFields.length; ++fieldInd) {
                    if (node.eagerLoadMask[fieldInd]) {
                        JDBCFieldBridge field = tableFields[fieldInd];
                        ref[0] = null;
                        index = field.loadArgumentResults(rs, index, ref);

                        if (cacheRelatedData) {
                            if (log.isTraceEnabled()) {
                                log.trace("Caching " +
                                        relatedEntity.getEntityName() +
                                        '[' +
                                        relatedId +
                                        "]." +
                                        field.getFieldName() + "=" + ref[0]);
                            }
                            relatedCache.addPreloadData(relatedId, field, ref[0]);
                        }
                    }
                }
View Full Code Here

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

                        // read the preload fields
                        if (eagerLoadMask != null) {
                            JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                            for (int i = 0; i < eagerLoadMask.length; i++) {
                                if (eagerLoadMask[i]) {
                                    JDBCFieldBridge field = tableFields[i];
                                    ref[0] = null;

                                    // read the value and store it in the readahead cache
                                    index = field.loadArgumentResults(rs, index, ref);

                                    if (addPk) {
                                        selectReadAheadCache.addPreloadData(pk, field, ref[0]);
                                    }
                                }
View Full Code Here

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

                        // read the preload fields
                        if (eagerLoadMask != null) {
                            JDBCFieldBridge[] tableFields = selectEntity.getTableFields();
                            for (int i = 0; i < eagerLoadMask.length; i++) {
                                if (eagerLoadMask[i]) {
                                    JDBCFieldBridge field = tableFields[i];
                                    ref[0] = null;

                                    // read the value and store it in the readahead cache
                                    index = field.loadArgumentResults(rs, index, ref);

                                    if (addPk) {
                                        selectReadAheadCache.addPreloadData(curPk, field, ref[0]);
                                    }
                                }
View Full Code Here

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

            SQLUtil.OldIndexes oldIndexes = null;
            ArrayList newNames = new ArrayList();
            JDBCFieldBridge[] fields = entity.getTableFields();
            String tableName = entity.getQualifiedTableName();
            for (int i = 0; i < fields.length; i++) {
                JDBCFieldBridge field = fields[i];
                JDBCType jdbcType = field.getJDBCType();
                String[] columnNames = jdbcType.getColumnNames();
                String[] sqlTypes = jdbcType.getSQLTypes();
                boolean[] notNull = jdbcType.getNotNull();

                for (int j = 0; j < columnNames.length; j++) {
                    String name = columnNames[j];
                    String ucName = name.toUpperCase();

                    newNames.add(ucName);

                    int oldIndex = oldNames.indexOf(ucName);
                    if (oldIndex == -1) {
                        // add new column
                        StringBuffer buf = new StringBuffer(sqlTypes[j]);
                        if (notNull[j]) {
                            buf.append(SQLUtil.NOT).append(SQLUtil.NULL);
                        }
                        alterTable(entity.getDataSource(),
                                entityMetaData.getTypeMapping().getAddColumnTemplate(),
                                tableName, name, buf.toString());
                    } else {
                        // alter existing columns
                        // only CHAR and VARCHAR fields are altered, and only when they are longer then before
                        String type = (String) oldTypes.get(oldIndex);
                        if (type.equals("CHAR") || type.equals("VARCHAR")) {
                            try {
                                // get new length
                                String l = sqlTypes[j];
                                l = l.substring(l.indexOf('(') + 1, l.length() - 1);
                                Integer oldLength = (Integer) oldSizes.get(oldIndex);
                                if (Integer.parseInt(l) > oldLength.intValue()) {
                                    alterTable(entity.getDataSource(),
                                            entityMetaData.getTypeMapping().getAlterColumnTemplate(),
                                            tableName, name, sqlTypes[j]);
                                }
                            } catch (Exception e) {
                                CmpLogger.ROOT_LOGGER.exceptionAlterTable(e);
                            }
                        }
                    }
                }

                // see if we have to add an index for the field
                JDBCCMPFieldMetaData fieldMD = entity.getMetaData().getCMPFieldByName(field.getFieldName());
                if (fieldMD != null && fieldMD.isIndexed()) {
                    if (oldIndexes == null) {
                        oldIndexes = SQLUtil.getOldIndexes(entity.getQualifiedTableName(), entity.getDataSource());
                        idxCount = oldIndexes.getIndexNames().size();
                    }
                    if (!hasIndex(oldIndexes, field)) {
                        createCMPIndex(entity.getDataSource(), field, oldIndexes.getIndexNames());
                    }

                }
            } // for  int i;

            // delete old columns
            Iterator it = oldNames.iterator();
            while (it.hasNext()) {
                String name = (String) (it.next());
                if (!newNames.contains(name)) {
                    alterTable(entity.getDataSource(),
                            entityMetaData.getTypeMapping().getDropColumnTemplate(),
                            tableName, name, "");
                }
            }

        }

        // Create table if necessary
        if (entityMetaData.getCreateTable() && !manager.hasCreateTable(entity.getEntityName())) {
            DataSource dataSource = entity.getDataSource();

            createTable(dataSource, entity.getQualifiedTableName(), getEntityCreateTableSQL(dataSource));

            // create indices only if table did not yet exist.
            if (!tableExisted) {
                createCMPIndices(dataSource,
                        SQLUtil.getOldIndexes(entity.getQualifiedTableName(),
                                entity.getDataSource()).getIndexNames());
            } else {
                if (log.isDebugEnabled()) {
                    log.debug("Indices for table " + entity.getQualifiedTableName() + "not created as table existed");
                }
            }


            // issue extra (user-defined) sql for table
            if (!tableExisted) {
                issuePostCreateSQL(dataSource,
                        entity.getMetaData().getDefaultTablePostCreateCmd(),
                        entity.getQualifiedTableName());
            }

            manager.addCreateTable(entity.getEntityName());
        } else {
            log.debug("Table not create as requested: " + entity.getQualifiedTableName());
        }

        // create relation tables
        JDBCAbstractCMRFieldBridge[] cmrFields = entity.getCMRFields();
        for (int i = 0; i < cmrFields.length; ++i) {
            JDBCAbstractCMRFieldBridge cmrField = cmrFields[i];
            JDBCRelationMetaData relationMetaData = cmrField.getMetaData().getRelationMetaData();
            DataSource dataSource = manager.getDataSource(relationMetaData.getDataSourceName());

            // if the table for the related entity has been created
            final EntityBridge relatedEntity = cmrField.getRelatedEntity();
            if (relationMetaData.isTableMappingStyle() && manager.hasCreateTable(relatedEntity.getEntityName())) {
                boolean relTableExisted = SQLUtil.tableExists(cmrField.getQualifiedTableName(), entity.getDataSource());

                if (relTableExisted) {
                    if (relationMetaData.getAlterTable()) {
                        ArrayList oldNames = SQLUtil.getOldColumns(cmrField.getQualifiedTableName(), dataSource).getColumnNames();
                        ArrayList newNames = new ArrayList();
                        JDBCFieldBridge[] leftKeys = cmrField.getTableKeyFields();
                        JDBCFieldBridge[] rightKeys = cmrField.getRelatedCMRField().getTableKeyFields();
                        JDBCFieldBridge[] fields = new JDBCFieldBridge[leftKeys.length + rightKeys.length];
                        System.arraycopy(leftKeys, 0, fields, 0, leftKeys.length);
                        System.arraycopy(rightKeys, 0, fields, leftKeys.length, rightKeys.length);
                        // have to append field names to leftKeys, rightKeys...

                        boolean different = false;
                        for (int j = 0; j < fields.length; j++) {
                            JDBCFieldBridge field = fields[j];

                            String name = field.getJDBCType().getColumnNames()[0].toUpperCase();
                            newNames.add(name);

                            if (!oldNames.contains(name)) {
                                different = true;
                                break;
View Full Code Here

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

        // add fields
        boolean comma = false;
        JDBCFieldBridge[] fields = entity.getTableFields();
        for (int i = 0; i < fields.length; ++i) {
            JDBCFieldBridge field = fields[i];
            JDBCType type = field.getJDBCType();
            if (comma) {
                sql.append(SQLUtil.COMMA);
            } else {
                comma = true;
            }
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.