首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hibernate - 10.12. 应用元数据

2012-06-27 
hibernate - 10.12. 使用元数据Hibernate中有一个非常丰富的元级别(meta-level)的模型,含有所有的实体和值

hibernate - 10.12. 使用元数据

Hibernate中有一个非常丰富的元级别(meta-level)的模型,含有所有的实体和值类型数据的元数据。 有时这个模型对应用程序本身也会非常有用。 比如说,应用程序可能在实现一种“智能”的深度拷贝算法时, 通过使用Hibernate的元数据来了解哪些对象应该被拷贝(比如,可变的值类型数据), 那些不应该(不可变的值类型数据,也许还有某些被关联的实体)。

Hibernate提供了ClassMetadata接口,CollectionMetadata接口和Type层次体系来访问元数据。 可以通过SessionFactory获取元数据接口的实例。

Cat fritz = ......;ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);Object[] propertyValues = catMeta.getPropertyValues(fritz);String[] propertyNames = catMeta.getPropertyNames();Type[] propertyTypes = catMeta.getPropertyTypes();// get a Map of all properties which are not collections or associationsMap namedValues = new HashMap();for ( int i=0; i<propertyNames.length; i++ ) {    if ( !propertyTypes[i].isEntityType() && !propertyTypes[i].isCollectionType() ) {        namedValues.put( propertyNames[i], propertyValues[i] );    }}

热点排行