本文整理汇总了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);
}
}
示例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;
}
示例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);
}
}
}
}
}