Package org.jboss.as.cmp.jdbc.bridge

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


            JDBCStoreManager manager,
            Method[] homeMethods,
            Logger log) {

        JDBCCommandFactory factory = manager.getCommandFactory();
        JDBCEntityBridge entity = (JDBCEntityBridge) manager.getEntityBridge();
        for (int i = 0; i < homeMethods.length; i++) {
            Method method = homeMethods[i];

            if (!knownQueries.containsKey(method)) {
                String name = method.getName();
                if (name.equals(FIND_ALL)) {
                    JDBCQueryMetaData q = new JDBCAutomaticQueryMetaData(
                            method,
                            entity.getMetaData().getReadAhead(),
                            entity.getMetaData().getQlCompiler(), false
                    );
                    knownQueries.put(method, factory.createFindAllQuery(q));
                } else if (name.startsWith(FIND_BY) && !name.equals(FIND_BY_PK)) {
                    try {
                        JDBCQueryMetaData q = new JDBCAutomaticQueryMetaData(
                                method,
                                entity.getMetaData().getReadAhead(),
                                entity.getMetaData().getQlCompiler(), false);
                        knownQueries.put(method, factory.createFindByQuery(q));
                    } catch (IllegalArgumentException e) {
                        log.debug("Could not create the finder " + name +
                                ", because no matching CMP field was found.");
                    }
View Full Code Here


    public JDBCFindByPrimaryKeyQuery(JDBCStoreManager manager, JDBCQueryMetaData q) {
        super(manager, q);
        this.manager = manager;
        rowLocking = manager.getMetaData().hasRowLocking();

        JDBCEntityBridge entity = (JDBCEntityBridge) manager.getEntityBridge();

        JDBCTypeMappingMetaData typeMapping = this.manager.getJDBCTypeFactory().getTypeMapping();
        AliasManager aliasManager = new AliasManager(
                typeMapping.getAliasHeaderPrefix(),
                typeMapping.getAliasHeaderSuffix(),
                typeMapping.getAliasMaxLength()
        );

        String alias = aliasManager.getAlias(entity.getEntityName());

        StringBuffer select = new StringBuffer(200);
        SQLUtil.getColumnNamesClause(entity.getPrimaryKeyFields(), alias, select);

        StringBuffer from = new StringBuffer();
        from.append(entity.getQualifiedTableName())
                .append(' ')
                .append(alias);

        // set the preload fields
        JDBCReadAheadMetaData readAhead = q.getReadAhead();
        if (readAhead.isOnFind()) {
            setEagerLoadGroup(readAhead.getEagerLoadGroup());
            if (getEagerLoadMask() != null) {
                SQLUtil.appendColumnNamesClause(entity.getTableFields(), getEagerLoadMask(), alias, select);

                List<LeftJoinCMRNode> onFindCMRList = JDBCAbstractQueryCommand.getLeftJoinCMRNodes(
                        entity, entity.getQualifiedTableName(), readAhead.getLeftJoins(), null);

                if (!onFindCMRList.isEmpty()) {
                    setOnFindCMRList(onFindCMRList);
                    JDBCAbstractQueryCommand.leftJoinCMRNodes(alias, onFindCMRList, aliasManager, from);
                    JDBCAbstractQueryCommand.appendLeftJoinCMRColumnNames(onFindCMRList, aliasManager, select);
                }
            }
        }

        StringBuffer where = new StringBuffer();
        SQLUtil.getWhereClause(entity.getPrimaryKeyFields(), alias, where);

        // generate the sql
        StringBuffer sql = new StringBuffer(300);
        if (rowLocking && readAhead.isOnFind() && getEagerLoadMask() != null) {
            JDBCFunctionMappingMetaData rowLockingTemplate = typeMapping.getRowLockingTemplate();
View Full Code Here

public final class JDBCFindAllQuery extends JDBCAbstractQueryCommand {

    public JDBCFindAllQuery(JDBCStoreManager manager, JDBCQueryMetaData q) {
        super(manager, q);

        JDBCEntityBridge entity = (JDBCEntityBridge) manager.getEntityBridge();

        // set the preload fields
        JDBCReadAheadMetaData readAhead = q.getReadAhead();
        if (readAhead.isOnFind()) {
            setEagerLoadGroup(readAhead.getEagerLoadGroup());
        }

        // generate the sql
        StringBuffer sql = new StringBuffer(300);
        sql.append(SQLUtil.SELECT);
        // put pk fields first
        SQLUtil.getColumnNamesClause(entity.getPrimaryKeyFields(), sql);
        if (getEagerLoadGroup() != null) {
            SQLUtil.appendColumnNamesClause(entity, getEagerLoadGroup(), sql);
        }
        sql.append(SQLUtil.FROM).append(entity.getQualifiedTableName());

        setSQL(sql.toString());
    }
View Full Code Here

        setLimitParam(compiler.getLimitParam());
        setLimitValue(compiler.getLimitValue());

        // 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();
                    JDBCCMPFieldBridge[] tableFields = (JDBCCMPFieldBridge[]) selectEntity.getTableFields();
                    for (int i = 0; i < tableFields.length; ++i) {
                        if (mask[i] && !tableFields[i].getJDBCType().isSearchable()) {
                            mask[i] = false;
                        }
                    }
View Full Code Here

        // set the select object (either selectEntity or selectField)
        initSelectObject(manager);

        // set the preload fields
        JDBCReadAheadMetaData readAhead = metadata.getReadAhead();
        JDBCEntityBridge selectEntity = getSelectEntity();
        if (selectEntity != null && readAhead.isOnFind()) {
            setEagerLoadGroup(readAhead.getEagerLoadGroup());
        }

        // set the sql and parameters
View Full Code Here

            return;
        }

        Catalog catalog = manager.getCatalog();

        JDBCEntityBridge entity = (JDBCEntityBridge) catalog.getEntityByEJBName(entityName);
        if (entity == null) {
            throw MESSAGES.unknownEntity(entityName);
        }

        String fieldName = metadata.getFieldName();
        if (fieldName == null) {
            setSelectEntity(entity);
        } else {
            JDBCCMPFieldBridge field = entity.getCMPFieldByName(fieldName);
            if (field == null) {
                throw MESSAGES.unknownCmpField(fieldName);
            }
            setSelectField(field);
        }
View Full Code Here

TOP

Related Classes of org.jboss.as.cmp.jdbc.bridge.JDBCEntityBridge

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.