Examples of JDBCFieldBridge


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

     */
    private void createCMPIndices(DataSource dataSource, ArrayList indexNames) {
        // Only create indices on CMP fields
        JDBCFieldBridge[] cmpFields = entity.getTableFields();
        for (int i = 0; i < cmpFields.length; ++i) {
            JDBCFieldBridge field = cmpFields[i];
            JDBCCMPFieldMetaData fieldMD = entity.getMetaData().getCMPFieldByName(field.getFieldName());

            if (fieldMD != null && fieldMD.isIndexed()) {
                createCMPIndex(dataSource, field, indexNames);
            }
        }
View Full Code Here

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

                                             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);
            }
        } else {
            // child has the foreign keys
            JDBCFieldBridge[] childFkFields = cmrField.getRelatedCMRField().getForeignKeyFields();
            int i = 0;
            while (i < childFkFields.length) {
                childField = childFkFields[i++];
                parentField = (JDBCFieldBridge) parentEntity.getFieldByName(childField.getFieldName());

                // add the sql
                getJoinClause(parentField, parentAlias, childField, childAlias, buf);
                if (i < childFkFields.length) {
                    buf.append(AND);
View Full Code Here

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

    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.as.cmp.jdbc.bridge.JDBCFieldBridge

                    return buf;
                }
            }

            String alias = aliasManager.getAlias(path.getPath(path.size() - 2));
            JDBCFieldBridge field = (JDBCFieldBridge) path.getField();

            // if jdbc type is null then it should be a cmr field in
            // a one-to-one mapping that isn't a foreign key.
            // handle it the way the IS EMPTY on the one side of one-to-many
            // relationship is handled
            if (field.getJDBCType() == null) {
                existsClause(path, buf, !node.not);
                return buf;
            }

            // check the path for cmr fields and add them to join paths
View Full Code Here

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

    public static List createParameters(int argNum, JDBCAbstractEntityBridge entity) {
        List parameters = new ArrayList();
        JDBCFieldBridge[] pkFields = entity.getPrimaryKeyFields();
        for (int i = 0; i < pkFields.length; ++i) {
            JDBCFieldBridge pkField = pkFields[i];

            JDBCType type = pkField.getJDBCType();
            if (type instanceof JDBCTypeComplex) {
                JDBCTypeComplexProperty[] props =
                        ((JDBCTypeComplex) type).getProperties();
                for (int j = 0; j < props.length; j++) {
                    QueryParameter param = new QueryParameter(
View Full Code Here

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

    public static List createPrimaryKeyParameters(int argNum, JDBCAbstractEntityBridge entity) {
        List parameters = new ArrayList();
        JDBCFieldBridge[] pkFields = entity.getPrimaryKeyFields();
        for (int i = 0; i < pkFields.length; ++i) {
            JDBCFieldBridge pkField = pkFields[i];

            JDBCType type = pkField.getJDBCType();
            if (type instanceof JDBCTypeComplex) {
                JDBCTypeComplexProperty[] props = ((JDBCTypeComplex) type).getProperties();
                for (int j = 0; j < props.length; j++) {
                    QueryParameter param = new QueryParameter(
                            argNum,
View Full Code Here

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

        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());
        }
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) {
                                log.warn("EXCEPTION ALTER :" + e.toString());
                            }
                        }
                    }
                }

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