`
sctom123
  • 浏览: 112114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

defalut entityname

 
阅读更多
		String entityName = node.attributeValue( "entity-name" );
		if ( entityName == null ) entityName = getClassName( node.attribute("name"), mappings );
		if ( entityName==null ) {
			throw new MappingException( "Unable to determine entity name" );
		}
		persistentClass.setEntityName( entityName );


	private static String getClassName(String unqualifiedName, Mappings model) {
		if ( unqualifiedName == null ) return null;
		if ( unqualifiedName.indexOf( '.' ) < 0 && model.getDefaultPackage() != null ) {
			return model.getDefaultPackage() + '.' + unqualifiedName;
		}
		return unqualifiedName;
	}


	public String guessEntityName(Object object) throws HibernateException {
		errorIfClosed();
		String entity = interceptor.getEntityName( object );
		if ( entity == null ) {
			if ( object instanceof Map ) {
				entity = (String) ( (Map) object ).get( DynamicMapInstantiator.KEY );
				if ( entity == null ) {
					throw new HibernateException( "could not determine type of dynamic entity" );
				}
			}
			else if ( object instanceof Element ) {
				// TODO : really need to keep a map of nodeName -> entityName, but that would mean nodeName being distinct
				entity = ( (Element) object ).getName();
			}
			else {
				entity = object.getClass().getName();
			}
		}
		return entity;
	}

	/**
	 * Return the names of all persistent (mapped) classes that extend or implement the
	 * given class or interface, accounting for implicit/explicit polymorphism settings
	 * and excluding mapped subclasses/joined-subclasses of other classes in the result.
	 */
	public String[] getImplementors(String className) throws MappingException {

		final Class clazz;
		try {
			clazz = ReflectHelper.classForName(className);
		}
		catch (ClassNotFoundException cnfe) {
			return new String[] { className }; //for a dynamic-class
		}

		ArrayList results = new ArrayList();
		Iterator iter = entityPersisters.values().iterator();
		while ( iter.hasNext() ) {
			//test this entity to see if we must query it
			EntityPersister testPersister = (EntityPersister) iter.next();
			if ( testPersister instanceof Queryable ) {
				Queryable testQueryable = (Queryable) testPersister;
				String testClassName = testQueryable.getEntityName();
				boolean isMappedClass = className.equals(testClassName);
				if ( testQueryable.isExplicitPolymorphism() ) {
					if ( isMappedClass ) {
						return new String[] {className}; //NOTE EARLY EXIT
					}
				}
				else {
					if (isMappedClass) {
						results.add(testClassName);
					}
					else {
						final Class mappedClass = testQueryable.getMappedClass( EntityMode.POJO );
						if ( mappedClass!=null && clazz.isAssignableFrom( mappedClass ) ) {
							final boolean assignableSuperclass;
							if ( testQueryable.isInherited() ) {
								Class mappedSuperclass = getEntityPersister( testQueryable.getMappedSuperclass() ).getMappedClass( EntityMode.POJO);
								assignableSuperclass = clazz.isAssignableFrom(mappedSuperclass);
							}
							else {
								assignableSuperclass = false;
							}
							if ( !assignableSuperclass ) {
								results.add( testClassName );
							}
						}
					}
				}
			}
		}
		return (String[]) results.toArray( new String[ results.size() ] );
	}

	/**
	 * 这个方法实际上并不是getClassName,而是getAdaptEntityName
	 * 它是为了那种偷懒的写法 from A
	 * 如果都写成from com.A,应该是就不会用到这个方法了。
	 */
	public String getImportedClassName(String className) {
		String result = (String) imports.get(className);
		if (result==null) {
			try {
				ReflectHelper.classForName(className);
				return className;
			}
			catch (ClassNotFoundException cnfe) {
				return null;
			}
		}
		else {
			return result;
		}
	}
分享到:
评论
1 楼 ruruhuang 2006-11-10  
buaawhl 写道
吵架的声音都听得到,楼距应该不远。不一定是自己跳的。
也许会作为目击证人受到警察的盘问?

---------------------------

如果是自杀,为什么要选择跳楼呢?
自杀真的很难。最好的自杀方法应该是杜冷丁安乐死,在欲仙浴死的幻觉中死去。可惜成本太高,一般人负担不起。
武林高手也可以自断经脉而死。藏密高手可以虹化而去。
普通人自杀都这么难。




不知道警察会不会来,不过我觉得不会是自杀。因为那个门楼下是台阶,如果真的自杀,跳下去会摔很难看的。

我觉得,女人一般不会选择这么难看的自杀的。

相关推荐

    XML学习第一天之DTD入门

    ATTLIST elementname attrname atttype default&gt;`定义了一个属性,其中`attrname`是属性名,`atttype`是属性类型,`default`是默认值。 3. 命名空间:虽然不在DTD的直接范畴内,但与XML紧密相关。命名空间允许在...

    xml-dtd文件配置

    ATTLIST elementName attributeName attributeType defaultValue&gt;`声明了一个属性,如`&lt;!ATTLIST book id ID #REQUIRED&gt;`,表示`book`元素必须有一个名为`id`的ID类型属性。 5. **实体声明**:实体是XML中的一个...

    解码XML和DTD

    ATTLIST elementname attribute name type default&gt;`:定义元素的属性,包括属性名、类型和默认值。 3. `&lt;!NOTATION notationname PUBLIC|SYSTEM identifier&gt;`:定义notation,用于指定外部实体的类型。 4. `&lt;!...

    DTD中文手册.zip

    ATTLIST elementName attributeName attributeType defaultValue&gt;`,用于指定元素可以拥有的属性,属性的类型以及默认值。 3. 实体声明:`&lt;!ENTITY entityName "entityValue"&gt;`用于定义一个实体,可以是文本字符串...

    XML中的外部dtd和内部dtd实例

    ENTITY entityName "entityValue"&gt; ``` 参数实体以`%`开头,常用于引入外部文件: ```xml &lt;!ENTITY % entities SYSTEM "entities.ent"&gt; ``` 七、总结 了解XML的外部DTD和内部DTD有助于创建结构清晰、易于维护的...

    DTD 总结 DTD 总结 DTD 总结

    ATTLIST elementName attributeName attributeType defaultValue&gt;`,定义元素的属性及其类型和默认值。 - **实体声明**:例如`&lt;!ENTITY entityName "entityValue"&gt;`,用于定义可重用的文本块或数据。 - **注释**:...

    ios 持久化存储

    let entity = NSEntityDescription.entity(forEntityName: "EntityName", in: context)! let newObject = NSManagedObject(entity: entity, insertInto: context) newObject.setValue("Hello, Core Data!", ...

    dtd文件范例

    ATTLIST elementName attributeName attributeType defaultValue&gt;`来定义。例如,`&lt;!ATTLIST author name CDATA #REQUIRED&gt;`定义了author元素有一个名为name的属性,类型为CDATA(未解析的字符数据),并且是必需的...

    powerDesigner教程

    - **EntityName**:实体的名称。 - **AttributeCode**:属性的代码或标识。 ### 工具支持的对象语言 - **BMS Object Language**:数据库管理系统的对象语言,支持数据库对象的定义、操作等。 ### 通用操作 - **...

Global site tag (gtag.js) - Google Analytics