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


Java EntityBinding类代码示例

本文整理汇总了Java中org.hibernate.metamodel.binding.EntityBinding的典型用法代码示例。如果您正苦于以下问题:Java EntityBinding类的具体用法?Java EntityBinding怎么用?Java EntityBinding使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: createEntityBinding

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private EntityBinding createEntityBinding(EntitySource entitySource, EntityBinding superEntityBinding) {
	if ( processedEntityNames.contains( entitySource.getEntityName() ) ) {
		return metadata.getEntityBinding( entitySource.getEntityName() );
	}

	currentBindingContext = entitySource.getLocalBindingContext();
	try {
		final EntityBinding entityBinding = doCreateEntityBinding( entitySource, superEntityBinding );

		metadata.addEntity( entityBinding );
		processedEntityNames.add( entityBinding.getEntity().getName() );

		processFetchProfiles( entitySource, entityBinding );

		return entityBinding;
	}
	finally {
		currentBindingContext = null;
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:Binder.java

示例2: createBasicEntityBinding

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private EntityBinding createBasicEntityBinding(EntitySource entitySource, EntityBinding superEntityBinding) {
	if ( superEntityBinding == null ) {
		return makeRootEntityBinding( (RootEntitySource) entitySource );
	}
	else {
		switch ( currentInheritanceType ) {
			case SINGLE_TABLE:
				return makeDiscriminatedSubclassBinding( (SubclassEntitySource) entitySource, superEntityBinding );
			case JOINED:
				return makeJoinedSubclassBinding( (SubclassEntitySource) entitySource, superEntityBinding );
			case TABLE_PER_CLASS:
				return makeUnionedSubclassBinding( (SubclassEntitySource) entitySource, superEntityBinding );
			default:
				// extreme internal error!
				throw new AssertionFailure( "Internal condition failure" );
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:19,代码来源:Binder.java

示例3: makeRootEntityBinding

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private EntityBinding makeRootEntityBinding(RootEntitySource entitySource) {
	currentHierarchyEntityMode = entitySource.getEntityMode();

	final EntityBinding entityBinding = buildBasicEntityBinding( entitySource, null );

	bindPrimaryTable( entitySource, entityBinding );

	bindIdentifier( entitySource, entityBinding );
	bindVersion( entityBinding, entitySource );
	bindDiscriminator( entitySource, entityBinding );

	entityBinding.getHierarchyDetails().setCaching( entitySource.getCaching() );
	entityBinding.getHierarchyDetails().setExplicitPolymorphism( entitySource.isExplicitPolymorphism() );
	entityBinding.getHierarchyDetails().setOptimisticLockStyle( entitySource.getOptimisticLockStyle() );

	entityBinding.setMutable( entitySource.isMutable() );
	entityBinding.setWhereFilter( entitySource.getWhere() );
	entityBinding.setRowId( entitySource.getRowId() );

	return entityBinding;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:22,代码来源:Binder.java

示例4: bindIdentifier

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private void bindIdentifier(RootEntitySource entitySource, EntityBinding entityBinding) {
	if ( entitySource.getIdentifierSource() == null ) {
		throw new AssertionFailure( "Expecting identifier information on root entity descriptor" );
	}
	switch ( entitySource.getIdentifierSource().getNature() ) {
		case SIMPLE: {
			bindSimpleIdentifier( (SimpleIdentifierSource) entitySource.getIdentifierSource(), entityBinding );
			break;
		}
		case AGGREGATED_COMPOSITE: {
			// composite id with an actual component class
		    break;
		}
		case COMPOSITE: {
			// what we used to term an "embedded composite identifier", which is not tobe confused with the JPA
			// term embedded. Specifically a composite id where there is no component class, though there may
			// be a @IdClass :/
		    break;
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:22,代码来源:Binder.java

示例5: bindDiscriminator

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private void bindDiscriminator(RootEntitySource entitySource, EntityBinding entityBinding) {
	final DiscriminatorSource discriminatorSource = entitySource.getDiscriminatorSource();
	if ( discriminatorSource == null ) {
		return;
	}

	EntityDiscriminator discriminator = new EntityDiscriminator();
	SimpleValue relationalValue = makeSimpleValue(
			entityBinding,
			discriminatorSource.getDiscriminatorRelationalValueSource()
	);
	discriminator.setBoundValue( relationalValue );

	discriminator.getExplicitHibernateTypeDescriptor().setExplicitTypeName(
			discriminatorSource.getExplicitHibernateTypeName() != null
					? discriminatorSource.getExplicitHibernateTypeName()
					: "string"
	);

	discriminator.setInserted( discriminatorSource.isInserted() );
	discriminator.setForced( discriminatorSource.isForced() );

	entityBinding.getHierarchyDetails().setEntityDiscriminator( discriminator );
	entityBinding.setDiscriminatorMatchValue( entitySource.getDiscriminatorMatchValue() );
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:26,代码来源:Binder.java

示例6: createTable

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private Table createTable(EntityBinding entityBinding, TableSource tableSource) {
	String tableName = tableSource.getExplicitTableName();
	if ( StringHelper.isEmpty( tableName ) ) {
		tableName = currentBindingContext.getNamingStrategy()
				.classToTableName( entityBinding.getEntity().getClassName() );
	}
	else {
		tableName = currentBindingContext.getNamingStrategy().tableName( tableName );
	}
	tableName = quoteIdentifier( tableName );

	final Schema.Name databaseSchemaName = Helper.determineDatabaseSchemaName(
			tableSource.getExplicitSchemaName(),
			tableSource.getExplicitCatalogName(),
			currentBindingContext
	);
	return currentBindingContext.getMetadataImplementor()
			.getDatabase()
			.locateSchema( databaseSchemaName )
			.locateOrCreateTable( Identifier.toIdentifier( tableName ) );
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:22,代码来源:Binder.java

示例7: bindTableUniqueConstraints

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private void bindTableUniqueConstraints(EntitySource entitySource, EntityBinding entityBinding) {
	for ( ConstraintSource constraintSource : entitySource.getConstraints() ) {
		if ( constraintSource instanceof UniqueConstraintSource ) {
			TableSpecification table = entityBinding.locateTable( constraintSource.getTableName() );
			if ( table == null ) {
				// throw exception !?
			}
			String constraintName = constraintSource.name();
			if ( constraintName == null ) {
				// create a default name
			}

			UniqueKey uniqueKey = table.getOrCreateUniqueKey( constraintName );
			for ( String columnName : constraintSource.columnNames() ) {
				uniqueKey.addColumn( table.locateOrCreateColumn( quoteIdentifier( columnName ) ) );
			}
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:20,代码来源:Binder.java

示例8: resolve

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
void resolve() {
	for ( EntityBinding entityBinding : metadata.getEntityBindings() ) {
		if ( entityBinding.getHierarchyDetails().getEntityDiscriminator() != null ) {
			resolveDiscriminatorTypeInformation( entityBinding.getHierarchyDetails().getEntityDiscriminator() );
		}
		for ( AttributeBinding attributeBinding : entityBinding.attributeBindings() ) {
			if ( SingularAttributeBinding.class.isInstance( attributeBinding ) ) {
				resolveSingularAttributeTypeInformation(
						SingularAttributeBinding.class.cast( attributeBinding  )
				);
			}
			else if ( AbstractPluralAttributeBinding.class.isInstance( attributeBinding ) ) {
				resolvePluralAttributeTypeInformation(
						AbstractPluralAttributeBinding.class.cast( attributeBinding )
				);
			}
			else {
				throw new AssertionFailure( "Unknown type of AttributeBinding: " + attributeBinding.getClass().getName() );
			}
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:23,代码来源:HibernateTypeResolver.java

示例9: getRootEntityBinding

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
@Override
public EntityBinding getRootEntityBinding(String entityName) {
	EntityBinding binding = entityBindingMap.get( entityName );
	if ( binding == null ) {
		throw new IllegalStateException( "Unknown entity binding: " + entityName );
	}

	do {
		if ( binding.isRoot() ) {
			return binding;
		}
		binding = binding.getSuperEntityBinding();
	} while ( binding != null );

	throw new AssertionFailure( "Entity binding has no root: " + entityName );
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:17,代码来源:MetadataImpl.java

示例10: UnionSubclassEntityPersister

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
public UnionSubclassEntityPersister(
		final EntityBinding entityBinding,
		final EntityRegionAccessStrategy cacheAccessStrategy,
		final NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy,
		final SessionFactoryImplementor factory,
		final Mapping mapping) throws HibernateException {
	super(entityBinding, cacheAccessStrategy, naturalIdRegionAccessStrategy, factory );
	// TODO: implement!!! initializing final fields to null to make compiler happy.
	subquery = null;
	tableName = null;
	subclassClosure = null;
	spaces = null;
	subclassSpaces = null;
	discriminatorValue = null;
	discriminatorSQLValue = null;
	constraintOrderedTableNames = null;
	constraintOrderedKeyColumnNames = null;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:19,代码来源:UnionSubclassEntityPersister.java

示例11: buildProxyFactory

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
@Override
protected ProxyFactory buildProxyFactory(EntityBinding mappingInfo, Getter idGetter, Setter idSetter) {

	ProxyFactory pf = new MapProxyFactory();
	try {
		//TODO: design new lifecycle for ProxyFactory
		pf.postInstantiate(
				getEntityName(),
				null,
				null,
				null,
				null,
				null
		);
	}
	catch ( HibernateException he ) {
		LOG.unableToCreateProxyFactory(getEntityName(), he);
		pf = null;
	}
	return pf;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:22,代码来源:DynamicMapEntityTuplizer.java

示例12: processEntityHierarchy

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
/**
 * Process an entity hierarchy.
 *
 * @param entityHierarchy THe hierarchy to process.
 */
public void processEntityHierarchy(EntityHierarchy entityHierarchy) {
	currentInheritanceType = entityHierarchy.getHierarchyInheritanceType();
	EntityBinding rootEntityBinding = createEntityBinding( entityHierarchy.getRootEntitySource(), null );
	if ( currentInheritanceType != InheritanceType.NO_INHERITANCE ) {
		processHierarchySubEntities( entityHierarchy.getRootEntitySource(), rootEntityBinding );
	}
	currentHierarchyEntityMode = null;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:14,代码来源:Binder.java

示例13: makeDiscriminatedSubclassBinding

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private EntityBinding makeDiscriminatedSubclassBinding(SubclassEntitySource entitySource, EntityBinding superEntityBinding) {
	final EntityBinding entityBinding = buildBasicEntityBinding( entitySource, superEntityBinding );

	entityBinding.setPrimaryTable( superEntityBinding.getPrimaryTable() );
	entityBinding.setPrimaryTableName( superEntityBinding.getPrimaryTableName() );
	bindDiscriminatorValue( entitySource, entityBinding );

	return entityBinding;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:10,代码来源:Binder.java

示例14: bindSimpleIdentifier

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private void bindSimpleIdentifier(SimpleIdentifierSource identifierSource, EntityBinding entityBinding) {
	final BasicAttributeBinding idAttributeBinding = doBasicSingularAttributeBindingCreation(
			identifierSource.getIdentifierAttributeSource(), entityBinding
	);

	entityBinding.getHierarchyDetails().getEntityIdentifier().setValueBinding( idAttributeBinding );
	IdGenerator generator = identifierSource.getIdentifierGeneratorDescriptor();
	if ( generator == null ) {
		Map<String, String> params = new HashMap<String, String>();
		params.put( IdentifierGenerator.ENTITY_NAME, entityBinding.getEntity().getName() );
		generator = new IdGenerator( "default_assign_identity_generator", "assigned", params );
	}
	entityBinding.getHierarchyDetails()
			.getEntityIdentifier()
			.setIdGenerator( generator );

	final org.hibernate.metamodel.relational.Value relationalValue = idAttributeBinding.getValue();

	if ( SimpleValue.class.isInstance( relationalValue ) ) {
		if ( !Column.class.isInstance( relationalValue ) ) {
			// this should never ever happen..
			throw new AssertionFailure( "Simple-id was not a column." );
		}
		entityBinding.getPrimaryTable().getPrimaryKey().addColumn( Column.class.cast( relationalValue ) );
	}
	else {
		for ( SimpleValue subValue : ( (Tuple) relationalValue ).values() ) {
			if ( Column.class.isInstance( subValue ) ) {
				entityBinding.getPrimaryTable().getPrimaryKey().addColumn( Column.class.cast( subValue ) );
			}
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:34,代码来源:Binder.java

示例15: bindVersion

import org.hibernate.metamodel.binding.EntityBinding; //导入依赖的package包/类
private void bindVersion(EntityBinding entityBinding, RootEntitySource entitySource) {
	final SingularAttributeSource versioningAttributeSource = entitySource.getVersioningAttributeSource();
	if ( versioningAttributeSource == null ) {
		return;
	}

	BasicAttributeBinding attributeBinding = doBasicSingularAttributeBindingCreation(
			versioningAttributeSource, entityBinding
	);
	entityBinding.getHierarchyDetails().setVersioningAttributeBinding( attributeBinding );
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:12,代码来源:Binder.java


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