Package org.jpox.store.mapped.mapping

Examples of org.jpox.store.mapped.mapping.DiscriminatorMapping


        if (fieldType != null && !fieldType.equals(mapping.getType()))
        {
            // The field relation is to a table that allows multiple types to be stored (and has a discriminator)
            // and the type we want is not the base type, so we need to restrict the values of the discriminator.
            DiscriminatorMetaData dismd = table.getDiscriminatorMetaData();
            DiscriminatorMapping discriminatorMapping = (DiscriminatorMapping)table.getDiscriminatorMapping(false);
            if (dismd != null && dismd.getStrategy() != DiscriminatorStrategy.NONE)
            {
                // Start with the required class
                BooleanExpression discrExpr = booleanConditionForClassInDiscriminator(qs, fieldType, dismd, discriminatorMapping, te);
View Full Code Here


            }

            // Check if the table of the field has a discriminator
            IdentifierFactory idFactory = qs.getStoreManager().getIdentifierFactory();
            DiscriminatorMetaData dismd = table.getDiscriminatorMetaData();
            DiscriminatorMapping discriminatorMapping = (DiscriminatorMapping)table.getDiscriminatorMapping(false);
            if (discriminatorMapping != null)
            {
                // Has a discriminator so do a join to the table of the field and apply a constraint on its discriminator
                LogicSetExpression fieldTblExpr = null;
                if (fieldName == null)
View Full Code Here

            {
                // Backwards compatibility only. Creates discriminator in all subclass tables even though not needed
                // TODO Remove this in the future
                if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME)
                {
                    discriminatorMapping = new DiscriminatorMapping(dba, this, dba.getMapping(String.class, storeMgr));
                }
                else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP)
                {
                    ColumnMetaData disColmd = dismd.getColumnMetaData();
                    if (disColmd != null && disColmd.getJdbcType() != null)
                    {
                        if (disColmd.getJdbcType().equalsIgnoreCase("INTEGER") ||
                                disColmd.getJdbcType().equalsIgnoreCase("BIGINT") ||
                                disColmd.getJdbcType().equalsIgnoreCase("NUMERIC"))
                        {
                            discriminatorMapping = new DiscriminatorMapping(dba, this, dba.getMapping(Long.class, storeMgr));
                        }
                        else
                        {
                            discriminatorMapping = new DiscriminatorMapping(dba, this, dba.getMapping(String.class, storeMgr));
                        }
                    }
                    else
                    {
                        discriminatorMapping = new DiscriminatorMapping(dba, this, dba.getMapping(String.class, storeMgr));
                    }
                }
            }
            else
            {
                // Create discriminator column only in top most table that needs it
                ClassTable tableWithDiscrim = getTableWithDiscriminator();
                if (tableWithDiscrim == this)
                {
                    // No superclass with a discriminator so add it in this table
                    if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME)
                    {
                        discriminatorMapping = new DiscriminatorMapping(dba, this,
                            dba.getMapping(String.class, storeMgr));
                    }
                    else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP)
                    {
                        ColumnMetaData disColmd = dismd.getColumnMetaData();
                        if (disColmd != null && disColmd.getJdbcType() != null)
                        {
                            if (disColmd.getJdbcType().equalsIgnoreCase("INTEGER") ||
                                    disColmd.getJdbcType().equalsIgnoreCase("BIGINT") ||
                                    disColmd.getJdbcType().equalsIgnoreCase("NUMERIC"))
                            {
                                discriminatorMapping = new DiscriminatorMapping(dba, this,
                                    dba.getMapping(Long.class, storeMgr));
                            }
                            else
                            {
                                discriminatorMapping = new DiscriminatorMapping(dba, this,
                                    dba.getMapping(String.class, storeMgr));
                            }
                        }
                        else
                        {
                            discriminatorMapping = new DiscriminatorMapping(dba, this,
                                dba.getMapping(String.class, storeMgr));
                        }
                    }
                }
            }
View Full Code Here

TOP

Related Classes of org.jpox.store.mapped.mapping.DiscriminatorMapping

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.