亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? foreignkeys.java

?? 介紹了hibernate的入門有一些基本常用的事例
?? JAVA
字號:
//$Id: ForeignKeys.java,v 1.15 2005/04/10 19:29:07 oneovthafew Exp $package org.hibernate.engine;import java.io.Serializable;import org.hibernate.HibernateException;import org.hibernate.TransientObjectException;import org.hibernate.intercept.LazyPropertyInitializer;import org.hibernate.persister.entity.EntityPersister;import org.hibernate.proxy.HibernateProxy;import org.hibernate.proxy.LazyInitializer;import org.hibernate.type.AbstractComponentType;import org.hibernate.type.EntityType;import org.hibernate.type.Type;/** * Algorithms related to foreign key constraint transparency *  * @author Gavin King */public final class ForeignKeys {		private ForeignKeys() {}		public static class Nullifier {			private final boolean isDelete;		private final boolean isEarlyInsert;		private final SessionImplementor session;		private final Object self;				public Nullifier(Object self, boolean isDelete, boolean isEarlyInsert, SessionImplementor session) {			this.isDelete = isDelete;			this.isEarlyInsert = isEarlyInsert;			this.session = session;			this.self = self;		}				/**		 * Nullify all references to entities that have not yet 		 * been inserted in the database, where the foreign key		 * points toward that entity		 */		public void nullifyTransientReferences(final Object[] values, final Type[] types) 		throws HibernateException {			for ( int i = 0; i < types.length; i++ ) {				values[i] = nullifyTransientReferences( values[i], types[i] );			}		}			/**		 * Return null if the argument is an "unsaved" entity (ie. 		 * one with no existing database row), or the input argument 		 * otherwise. This is how Hibernate avoids foreign key constraint		 * violations.		 */		private Object nullifyTransientReferences(final Object value, final Type type) 		throws HibernateException {			if ( value == null ) {				return null;			}			else if ( type.isEntityType() ) {				EntityType entityType = (EntityType) type;				if ( entityType.isOneToOne() ) {					return value;				}				else {					String entityName = entityType.getAssociatedEntityName();					return isNullifiable(entityName, value) ? null : value;				}			}			else if ( type.isAnyType() ) {				return isNullifiable(null, value) ? null : value;			}			else if ( type.isComponentType() ) {				AbstractComponentType actype = (AbstractComponentType) type;				Object[] subvalues = actype.getPropertyValues(value, session);				Type[] subtypes = actype.getSubtypes();				boolean substitute = false;				for ( int i = 0; i < subvalues.length; i++ ) {					Object replacement = nullifyTransientReferences( subvalues[i], subtypes[i] );					if ( replacement != subvalues[i] ) {						substitute = true;						subvalues[i] = replacement;					}				}				if (substitute) actype.setPropertyValues( value, subvalues, session.getEntityMode() );				return value;			}			else {				return value;			}		}			/**		 * Determine if the object already exists in the database, 		 * using a "best guess"		 */		private boolean isNullifiable(final String entityName, Object object) 		throws HibernateException {						if (object==LazyPropertyInitializer.UNFETCHED_PROPERTY) return false; //this is kinda the best we can do...						if ( object instanceof HibernateProxy ) {				// if its an uninitialized proxy it can't be transient				LazyInitializer li = ( (HibernateProxy) object ).getHibernateLazyInitializer();				if ( li.getImplementation(session) == null ) {					return false;					// ie. we never have to null out a reference to					// an uninitialized proxy				}				else {					//unwrap it					object = li.getImplementation();				}			}				// if it was a reference to self, don't need to nullify			// unless we are using native id generation, in which			// case we definitely need to nullify			if ( object == self ) {				return isEarlyInsert || (					isDelete &&					session.getFactory()						.getDialect()						.hasSelfReferentialForeignKeyBug()				);			}				// See if the entity is already bound to this session, if not look at the			// entity identifier and assume that the entity is persistent if the			// id is not "unsaved" (that is, we rely on foreign keys to keep			// database integrity)				EntityEntry entityEntry = session.getPersistenceContext().getEntry(object);			if ( entityEntry==null ) {				return isTransient(entityName, object, null, session);			}			else {				return entityEntry.isNullifiable(isEarlyInsert, session);			}			}			}		/**	 * Is this instance persistent or detached?	 * If <tt>assumed</tt> is non-null, don't hit the database to make the 	 * determination, instead assume that value; the client code must be 	 * prepared to "recover" in the case that this assumed result is incorrect.	 */	public static boolean isNotTransient(String entityName, Object entity, Boolean assumed, SessionImplementor session) 	throws HibernateException {		if (entity instanceof HibernateProxy) return true;		if ( session.getPersistenceContext().isEntryFor(entity) ) return true;		return !isTransient(entityName, entity, assumed, session);	}		/**	 * Is this instance, which we know is not persistent, actually transient?	 * If <tt>assumed</tt> is non-null, don't hit the database to make the 	 * determination, instead assume that value; the client code must be 	 * prepared to "recover" in the case that this assumed result is incorrect.	 */	public static boolean isTransient(String entityName, Object entity, Boolean assumed, SessionImplementor session) 	throws HibernateException {				if (entity==LazyPropertyInitializer.UNFETCHED_PROPERTY) {			// an unfetched association can only point to			// an entity that already exists in the db			return false;		}				// let the interceptor inspect the instance to decide		Boolean isUnsaved = session.getInterceptor().isTransient(entity);		if (isUnsaved!=null) return isUnsaved.booleanValue();				// let the persister inspect the instance to decide		EntityPersister persister = session.getEntityPersister(entityName, entity);		isUnsaved = persister.isTransient(entity, session);		if (isUnsaved!=null) return isUnsaved.booleanValue();		// we use the assumed value, if there is one, to avoid hitting		// the database		if (assumed!=null) return assumed.booleanValue();				// hit the database, after checking the session cache for a snapshot		Object[] snapshot = session.getPersistenceContext()		        .getDatabaseSnapshot( persister.getIdentifier( entity, session.getEntityMode() ), persister );		return snapshot==null;	}	/**	 * Return the identifier of the persistent or transient object, or throw	 * an exception if the instance is "unsaved"	 *	 * Used by OneToOneType and ManyToOneType to determine what id value should 	 * be used for an object that may or may not be associated with the session. 	 * This does a "best guess" using any/all info available to use (not just the 	 * EntityEntry).	 */	public static Serializable getEntityIdentifierIfNotUnsaved(			final String entityName, 			final Object object, 			final SessionImplementor session) 	throws HibernateException {		if ( object == null ) {			return null;		}		else {			Serializable id = session.getEntityIdentifier(object);			if ( id==null ) {				if ( isTransient(entityName, object, Boolean.FALSE, session) ) {					throw new TransientObjectException(							"object references an unsaved transient instance - save the transient instance before flushing: " +							session.guessEntityName(object)					);				}				id = session.getEntityPersister(entityName, object).getIdentifier( object, session.getEntityMode() );			}			return id;		}	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区| 成年人午夜久久久| 91在线精品秘密一区二区| 777午夜精品免费视频| 亚洲少妇30p| 国产中文字幕精品| 日韩亚洲欧美中文三级| 亚洲精品视频在线看| 成人午夜视频在线| 久久视频一区二区| 麻豆国产精品777777在线| 欧美综合色免费| 国产精品色婷婷久久58| 极品尤物av久久免费看| 欧美一区欧美二区| 午夜精品久久久久久久久久| 色94色欧美sute亚洲线路一久| 国产女人aaa级久久久级| 国产在线精品一区二区三区不卡| 91精品婷婷国产综合久久性色| 一区二区三区美女视频| caoporn国产精品| 国产精品久久久爽爽爽麻豆色哟哟| 老司机精品视频导航| 日韩精品在线看片z| 美女国产一区二区| 日韩精品专区在线影院重磅| 久久精品999| 亚洲精品在线电影| 国产成人亚洲综合a∨婷婷图片| 久久影音资源网| 国产传媒久久文化传媒| 中文字幕免费不卡| 91视视频在线直接观看在线看网页在线看| 欧美国产精品专区| 91亚洲精品久久久蜜桃网站| 自拍偷拍国产精品| 欧美在线观看视频在线| 午夜久久久久久电影| 欧美一区二区成人6969| 韩国女主播一区| 中文字幕一区二区三区蜜月| 97国产精品videossex| 亚洲免费大片在线观看| 欧美日韩精品系列| 激情小说欧美图片| 中文字幕的久久| 91久久线看在观草草青青| 丝袜诱惑亚洲看片| 亚洲精品在线一区二区| 99久久精品免费看| 亚洲动漫第一页| 日韩一级高清毛片| 国产成人精品免费| 亚洲二区在线观看| 久久一夜天堂av一区二区三区| 成人av资源在线| 亚洲国产精品久久久久秋霞影院 | 日韩精品一卡二卡三卡四卡无卡| 欧美一区二区三区白人| 国产乱码精品一区二区三| 国产精品乱码妇女bbbb| 欧美艳星brazzers| 国内成+人亚洲+欧美+综合在线| 日本一区二区三区在线不卡| 欧美丝袜丝交足nylons图片| 91国内精品野花午夜精品| 欧美不卡一区二区| 日韩精品最新网址| 成人自拍视频在线| 亚洲制服丝袜av| 国产亚洲精品aa| 婷婷中文字幕综合| 精品动漫一区二区三区在线观看| 成人99免费视频| 日韩一区二区三区电影在线观看| 欧美在线三级电影| 欧美撒尿777hd撒尿| 欧美久久久影院| 欧美精品高清视频| 日韩亚洲电影在线| 精品国产网站在线观看| 久久嫩草精品久久久精品| 久久久久久97三级| 中文字幕一区二区三区精华液 | 国产精品国产三级国产三级人妇| 国产亚洲欧洲一区高清在线观看| 国产亚洲精品精华液| 午夜精品一区二区三区免费视频 | 日韩一区二区三区视频在线| 91精品国产综合久久久久久久| 日韩亚洲国产中文字幕欧美| www国产精品av| 国产精品视频第一区| 亚洲精品高清在线观看| 亚洲成av人片在线| 久久99精品久久久久久| 丁香婷婷综合五月| 欧美三区免费完整视频在线观看| 91精品国产一区二区三区香蕉| 欧美成人video| 欧美激情综合五月色丁香| 一区二区在线电影| 免费高清不卡av| gogo大胆日本视频一区| 欧美视频第二页| 精品国产一区二区三区久久影院 | 欧美一区二区黄色| 中文字幕+乱码+中文字幕一区| 亚洲精品老司机| 久久国产剧场电影| 91蝌蚪porny| 欧美成人一级视频| 亚洲欧美日韩在线不卡| 麻豆成人久久精品二区三区红 | 午夜精品在线看| 国产成人精品亚洲777人妖| 欧美日韩在线免费视频| 久久久噜噜噜久久人人看| 亚洲制服丝袜av| 成人伦理片在线| 日韩一级片在线播放| 亚洲啪啪综合av一区二区三区| 蜜臀91精品一区二区三区| 91视频国产资源| 久久九九99视频| 日韩和欧美一区二区| 9l国产精品久久久久麻豆| 日韩一区国产二区欧美三区| 亚洲黄色片在线观看| 国产成人精品亚洲777人妖| 欧美一区二区高清| 亚洲一区二区偷拍精品| 波多野洁衣一区| 欧美成人精品高清在线播放| 亚洲与欧洲av电影| 91在线观看污| 国产精品色一区二区三区| 久久91精品久久久久久秒播| 欧美精品色一区二区三区| 亚洲欧美另类小说视频| 成人av资源在线| 国产日韩欧美a| 久草这里只有精品视频| 日韩欧美国产系列| 亚洲大片免费看| 91久久一区二区| 中文字幕一区二区三区四区不卡| 国产激情一区二区三区桃花岛亚洲| 欧美福利视频导航| 亚洲午夜精品在线| 欧美亚洲国产bt| 亚洲一区二区在线免费观看视频| 成av人片一区二区| 欧美一区二区三区免费大片| 精品少妇一区二区三区免费观看| 亚洲午夜精品在线| 在线免费观看日本欧美| 国产精品天天摸av网| 高清成人免费视频| 久久亚洲精品小早川怜子| 麻豆精品一区二区三区| 欧美成人伊人久久综合网| 男女激情视频一区| 欧美一区二区三区在线观看| 首页国产欧美日韩丝袜| 91精品午夜视频| 青青草97国产精品免费观看无弹窗版| 欧美性猛交xxxxxxxx| 亚洲成a人片在线不卡一二三区| 91久久精品一区二区| 亚洲综合色区另类av| 欧美视频一区二区| 日韩高清中文字幕一区| 日韩欧美激情在线| 激情综合色综合久久| 久久精品视频网| 成人黄色小视频| 依依成人综合视频| 欧美亚洲一区二区在线| 日韩激情中文字幕| 欧美精品一区在线观看| 成人久久视频在线观看| 精品久久国产97色综合| 美国欧美日韩国产在线播放| 日韩精品一区二区三区swag| 极品美女销魂一区二区三区| 国产三级一区二区三区| 91婷婷韩国欧美一区二区| 亚洲第一狼人社区| 欧美本精品男人aⅴ天堂| 国产东北露脸精品视频| 亚洲精品综合在线| 欧美一区二区三区免费视频| 激情文学综合网| 亚洲精品综合在线| 日韩一区二区免费在线观看| 国产剧情在线观看一区二区| 久久人人97超碰com| 精品一区二区久久|