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


Java Component.getPropertySpan方法代码示例

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


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

示例1: AbstractComponentTuplizer

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
protected AbstractComponentTuplizer(Component component) {
	propertySpan = component.getPropertySpan();
	getters = new Getter[propertySpan];
	setters = new Setter[propertySpan];

	Iterator iter = component.getPropertyIterator();
	boolean foundCustomAccessor=false;
	int i = 0;
	while ( iter.hasNext() ) {
		Property prop = ( Property ) iter.next();
		getters[i] = buildGetter( component, prop );
		setters[i] = buildSetter( component, prop );
		if ( !prop.isBasicPropertyAccessor() ) {
			foundCustomAccessor = true;
		}
		i++;
	}
	hasCustomAccessors = foundCustomAccessor;
	instantiator = buildInstantiator( component );
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:AbstractComponentTuplizer.java

示例2: ComponentMetamodel

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
public ComponentMetamodel(Component component) {
//		this.sessionFactory = sessionFactory;
		this.role = component.getRoleName();
		this.isKey = component.isKey();
		propertySpan = component.getPropertySpan();
		properties = new StandardProperty[propertySpan];
		Iterator itr = component.getPropertyIterator();
		int i = 0;
		while ( itr.hasNext() ) {
			Property property = ( Property ) itr.next();
			properties[i] = PropertyFactory.buildStandardProperty( property, false );
			propertyIndexes.put( property.getName(), i );
			i++;
		}

		entityMode = component.hasPojoRepresentation() ? EntityMode.POJO : EntityMode.MAP;

		// todo : move this to SF per HHH-3517; also see HHH-1907 and ComponentMetamodel
		final ComponentTuplizerFactory componentTuplizerFactory = new ComponentTuplizerFactory();
		final String tuplizerClassName = component.getTuplizerImplClassName( entityMode );
		this.componentTuplizer = tuplizerClassName == null ? componentTuplizerFactory.constructDefaultTuplizer(
				entityMode,
				component
		) : componentTuplizerFactory.constructTuplizer( tuplizerClassName, component );
	}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:26,代码来源:ComponentMetamodel.java

示例3: ComponentMetamodel

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
public ComponentMetamodel(Component component) {
//		this.sessionFactory = sessionFactory;
		this.role = component.getRoleName();
		this.isKey = component.isKey();
		propertySpan = component.getPropertySpan();
		properties = new StandardProperty[propertySpan];
		Iterator itr = component.getPropertyIterator();
		int i = 0;
		while ( itr.hasNext() ) {
			Property property = ( Property ) itr.next();
			properties[i] = PropertyFactory.buildStandardProperty( property, false );
			propertyIndexes.put( property.getName(), new Integer( i ) );
			i++;
		}

		tuplizerMapping = new ComponentEntityModeToTuplizerMapping( component );
	}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:18,代码来源:ComponentMetamodel.java

示例4: AbstractComponentTuplizer

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
protected AbstractComponentTuplizer(Component component) {
	propertySpan = component.getPropertySpan();
	getters = new Getter[propertySpan];
	setters = new Setter[propertySpan];

	Iterator iter = component.getPropertyIterator();
	boolean foundCustomAccessor=false;
	int i = 0;
	while ( iter.hasNext() ) {
		Property prop = ( Property ) iter.next();
		getters[i] = buildGetter( component, prop );
		setters[i] = buildSetter( component, prop );
		if ( !prop.isBasicPropertyAccessor() ) {
			foundCustomAccessor = true;
		}
		i++;
	}
	hasCustomAccessors = foundCustomAccessor;

	String[] getterNames = new String[propertySpan];
	String[] setterNames = new String[propertySpan];
	Class[] propTypes = new Class[propertySpan];
	for ( int j = 0; j < propertySpan; j++ ) {
		getterNames[j] = getters[j].getMethodName();
		setterNames[j] = setters[j].getMethodName();
		propTypes[j] = getters[j].getReturnType();
	}
	instantiator = buildInstantiator( component );
}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:30,代码来源:AbstractComponentTuplizer.java

示例5: bindComponent

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
private static PropertyBinder bindComponent(
		PropertyData inferredData,
		PropertyHolder propertyHolder,
		AccessType propertyAccessor,
		EntityBinder entityBinder,
		boolean isIdentifierMapper,
		Mappings mappings,
		boolean isComponentEmbedded,
		boolean isId, //is a identifier
		Map<XClass, InheritanceState> inheritanceStatePerClass,
		String referencedEntityName, //is a component who is overridden by a @MapsId
		Ejb3JoinColumn[] columns) {
	Component comp;
	if ( referencedEntityName != null ) {
		comp = createComponent( propertyHolder, inferredData, isComponentEmbedded, isIdentifierMapper, mappings );
		SecondPass sp = new CopyIdentifierComponentSecondPass(
				comp,
				referencedEntityName,
				columns,
				mappings
		);
		mappings.addSecondPass( sp );
	}
	else {
		comp = fillComponent(
				propertyHolder, inferredData, propertyAccessor, !isId, entityBinder,
				isComponentEmbedded, isIdentifierMapper,
				false, mappings, inheritanceStatePerClass
		);
	}
	if ( isId ) {
		comp.setKey( true );
		if ( propertyHolder.getPersistentClass().getIdentifier() != null ) {
			throw new AnnotationException(
					comp.getComponentClassName()
							+ " must not have @Id properties when used as an @EmbeddedId: "
							+ BinderHelper.getPath( propertyHolder, inferredData )
			);
		}
		if ( referencedEntityName == null && comp.getPropertySpan() == 0 ) {
			throw new AnnotationException(
					comp.getComponentClassName()
							+ " has no persistent id property: "
							+ BinderHelper.getPath( propertyHolder, inferredData )
			);
		}
	}
	XProperty property = inferredData.getProperty();
	setupComponentTuplizer( property, comp );
	PropertyBinder binder = new PropertyBinder();
	binder.setName( inferredData.getPropertyName() );
	binder.setValue( comp );
	binder.setProperty( inferredData.getProperty() );
	binder.setAccessType( inferredData.getDefaultAccess() );
	binder.setEmbedded( isComponentEmbedded );
	binder.setHolder( propertyHolder );
	binder.setId( isId );
	binder.setEntityBinder( entityBinder );
	binder.setInheritanceStatePerClass( inheritanceStatePerClass );
	binder.setMappings( mappings );
	binder.makePropertyAndBind();
	return binder;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:64,代码来源:AnnotationBinder.java

示例6: buildPair

import org.hibernate.mapping.Component; //导入方法依赖的package包/类
public GenerationStrategyPair buildPair() {
	if ( hadInMemoryGeneration && hadInDatabaseGeneration ) {
		throw new ValueGenerationStrategyException(
				"Composite attribute [" + mappingProperty.getName() + "] contained both in-memory"
						+ " and in-database value generation"
		);
	}
	else if ( hadInMemoryGeneration ) {
		throw new NotYetImplementedException( "Still need to wire in composite in-memory value generation" );

	}
	else if ( hadInDatabaseGeneration ) {
		final Component composite = (Component) mappingProperty.getValue();

		// we need the numbers to match up so we can properly handle 'referenced sql column values'
		if ( inDatabaseStrategies.size() != composite.getPropertySpan() ) {
			throw new ValueGenerationStrategyException(
					"Internal error : mismatch between number of collected in-db generation strategies" +
							" and number of attributes for composite attribute : " + mappingProperty.getName()
			);
		}

		// the base-line values for the aggregated InDatabaseValueGenerationStrategy we will build here.
		GenerationTiming timing = GenerationTiming.INSERT;
		boolean referenceColumns = false;
		String[] columnValues = new String[ composite.getColumnSpan() ];

		// start building the aggregate values
		int propertyIndex = -1;
		int columnIndex = 0;
		Iterator subProperties = composite.getPropertyIterator();
		while ( subProperties.hasNext() ) {
			propertyIndex++;
			final Property subProperty = (Property) subProperties.next();
			final InDatabaseValueGenerationStrategy subStrategy = inDatabaseStrategies.get( propertyIndex );

			if ( subStrategy.getGenerationTiming() == GenerationTiming.ALWAYS ) {
				// override the base-line to the more often "ALWAYS"...
				timing = GenerationTiming.ALWAYS;

			}
			if ( subStrategy.referenceColumnsInSql() ) {
				// override base-line value
				referenceColumns = true;
			}
			if ( subStrategy.getReferencedColumnValues() != null ) {
				if ( subStrategy.getReferencedColumnValues().length != subProperty.getColumnSpan() ) {
					throw new ValueGenerationStrategyException(
							"Internal error : mismatch between number of collected 'referenced column values'" +
									" and number of columns for composite attribute : " + mappingProperty.getName() +
									'.' + subProperty.getName()
					);
				}
				System.arraycopy(
						subStrategy.getReferencedColumnValues(),
						0,
						columnValues,
						columnIndex,
						subProperty.getColumnSpan()
				);
			}
		}

		// then use the aggregated values to build the InDatabaseValueGenerationStrategy
		return new GenerationStrategyPair(
				new InDatabaseValueGenerationStrategyImpl( timing, referenceColumns, columnValues )
		);
	}
	else {
		return NO_GEN_PAIR;
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:73,代码来源:EntityMetamodel.java


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