当前位置: 首页>>代码示例>>Java>>正文


Java ClassDescriptor.getSuperClassDescriptor方法代码示例

本文整理汇总了Java中org.apache.ojb.broker.metadata.ClassDescriptor.getSuperClassDescriptor方法的典型用法代码示例。如果您正苦于以下问题:Java ClassDescriptor.getSuperClassDescriptor方法的具体用法?Java ClassDescriptor.getSuperClassDescriptor怎么用?Java ClassDescriptor.getSuperClassDescriptor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.ojb.broker.metadata.ClassDescriptor的用法示例。


在下文中一共展示了ClassDescriptor.getSuperClassDescriptor方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildSuperJoinTree

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * build the Join-Information if a super reference exists
 *
 * @param left
 * @param cld
 * @param name
 */
protected void buildSuperJoinTree(TableAlias left, ClassDescriptor cld, String name, boolean useOuterJoin)
{
    ClassDescriptor superCld = cld.getSuperClassDescriptor();
    if (superCld != null)
    {
        SuperReferenceDescriptor superRef = cld.getSuperReference();
        FieldDescriptor[] leftFields = superRef.getForeignKeyFieldDescriptors(cld);
        TableAlias base_alias = getTableAliasForPath(name, null, null);
        String aliasName = String.valueOf(getAliasChar()) + m_aliasCount++;
        TableAlias right = new TableAlias(superCld, aliasName, useOuterJoin, null);

        Join join1to1 = new Join(left, leftFields, right, superCld.getPkFields(), useOuterJoin, "superClass");
        base_alias.addJoin(join1to1);

        buildSuperJoinTree(right, superCld, name, useOuterJoin);
    }
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:25,代码来源:SqlQueryStatement.java

示例2: findInheritanceRoot

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * Returns the root {@link org.apache.ojb.broker.metadata.ClassDescriptor} of the inheriatance
 * hierachy of the given descriptor or the descriptor itself if no inheriatance on multiple table is
 * used.
 */
private static ClassDescriptor findInheritanceRoot(ClassDescriptor cld)
{
    ClassDescriptor result = cld;
    if(cld.getSuperClassDescriptor() != null)
    {
        result = findInheritanceRoot(cld.getSuperClassDescriptor());
    }
    return result;
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:15,代码来源:SequenceManagerHelper.java

示例3: deleteReferences

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * Deletes references that <b>obj</b> points to.
 * All objects which we have a FK poiting to (Via ReferenceDescriptors)
 * will be deleted if auto-delete is true <b>AND</b>
 * the member field containing the object reference is NOT null.
 *
 * @param obj Object which we will delete references for
 * @param listRds list of ObjectRederenceDescriptors
 * @param ignoreReferences With this flag the automatic deletion/unlinking
 * of references can be suppressed (independent of the used auto-delete setting in metadata),
 * except {@link org.apache.ojb.broker.metadata.SuperReferenceDescriptor}
 * these kind of reference (descriptor) will always be performed.
 * @throws PersistenceBrokerException if some goes wrong - please see the error message for details
 */
private void deleteReferences(ClassDescriptor cld, Object obj, Identity oid, boolean ignoreReferences) throws PersistenceBrokerException
{
	List listRds = cld.getObjectReferenceDescriptors();
    // get all members of obj that are references and delete them
    Iterator i = listRds.iterator();
    while (i.hasNext())
    {
        ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) i.next();
        if ((!ignoreReferences && rds.getCascadingDelete() == ObjectReferenceDescriptor.CASCADE_OBJECT)
                || rds.isSuperReferenceDescriptor())
        {
            Object referencedObject = rds.getPersistentField().get(obj);
            if (referencedObject != null)
            {
            	if(rds.isSuperReferenceDescriptor())
            	{
            		ClassDescriptor base = cld.getSuperClassDescriptor();
            		/*
	                 arminw: If "table-per-subclass" inheritance is used we have to
	                 guarantee that all super-class table entries are deleted too.
	                 Thus we have to perform the recursive deletion of all super-class
	                 table entries.
            		 */
            		performDeletion(base, referencedObject, oid, ignoreReferences);
            	}
            	else
            	{
            		doDelete(referencedObject, ignoreReferences);
            	}
            }
        }
    }
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:48,代码来源:PersistenceBrokerImpl.java


注:本文中的org.apache.ojb.broker.metadata.ClassDescriptor.getSuperClassDescriptor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。