⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classpropertyholder.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
字号:
//$Id: ClassPropertyHolder.java 14390 2008-03-04 22:42:53Z epbernard $package org.hibernate.cfg;import java.util.HashMap;import java.util.Map;import javax.persistence.JoinTable;import org.hibernate.annotations.common.reflection.XClass;import org.hibernate.cfg.annotations.EntityBinder;import org.hibernate.mapping.Component;import org.hibernate.mapping.Join;import org.hibernate.mapping.KeyValue;import org.hibernate.mapping.PersistentClass;import org.hibernate.mapping.Property;import org.hibernate.mapping.Table;/** * @author Emmanuel Bernard */public class ClassPropertyHolder extends AbstractPropertyHolder {	private PersistentClass persistentClass;	private Map<String, Join> joins;	private transient Map<String, Join> joinsPerRealTableName;	private EntityBinder entityBinder;	public ClassPropertyHolder(			PersistentClass persistentClass, XClass clazzToProcess, Map<String, Join> joins, ExtendedMappings mappings	) {		super( persistentClass.getEntityName(), null, clazzToProcess, mappings );		this.persistentClass = persistentClass;		this.joins = joins;	}	public ClassPropertyHolder(			PersistentClass persistentClass, XClass clazzToProcess, EntityBinder entityBinder,			ExtendedMappings mappings	) {		this( persistentClass, clazzToProcess, entityBinder.getSecondaryTables(), mappings );		this.entityBinder = entityBinder;	}	public String getEntityName() {		return persistentClass.getEntityName();	}	public void addProperty(Property prop, Ejb3Column[] columns) {		//Ejb3Column.checkPropertyConsistency( ); //already called earlier		if ( columns[0].isSecondary() ) {			//TODO move the getJoin() code here?			columns[0].getJoin().addProperty( prop );		}		else {			addProperty( prop );		}	}	public Join addJoin(JoinTable joinTableAnn, boolean noDelayInPkColumnCreation) {		Join join = entityBinder.addJoin( joinTableAnn, this, noDelayInPkColumnCreation );		this.joins = entityBinder.getSecondaryTables();		return join;	}	public void addProperty(Property prop) {		if ( prop.getValue() instanceof Component ) {			//TODO handle quote and non quote table comparison			String tableName = prop.getValue().getTable().getName();			if ( getJoinsPerRealTableName().containsKey( tableName ) ) {				getJoinsPerRealTableName().get( tableName ).addProperty( prop );			}			else {				persistentClass.addProperty( prop );			}		}		else {			persistentClass.addProperty( prop );		}	}	/**	 * Needed for proper compliance with naming strategy, the property table	 * can be overriden if the properties are part of secondary tables	 */	private Map<String, Join> getJoinsPerRealTableName() {		if ( joinsPerRealTableName == null ) {			joinsPerRealTableName = new HashMap<String, Join>( joins.size() );			for (Join join : joins.values()) {				joinsPerRealTableName.put( join.getTable().getName(), join );			}		}		return joinsPerRealTableName;	}	public String getClassName() {		return persistentClass.getClassName();	}	public String getEntityOwnerClassName() {		return getClassName();	}	public Table getTable() {		return persistentClass.getTable();	}	public boolean isComponent() {		return false;	}	public boolean isEntity() {		return true;	}	public PersistentClass getPersistentClass() {		return persistentClass;	}	public KeyValue getIdentifier() {		return persistentClass.getIdentifier();	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -