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

📄 pojoinstantiator.java

📁 介绍了hibernate的入门有一些基本常用的事例
💻 JAVA
字号:
//$Id: PojoInstantiator.java,v 1.3 2005/02/21 02:46:41 oneovthafew Exp $package org.hibernate.tuple;import java.io.IOException;import java.io.Serializable;import java.lang.reflect.Constructor;import net.sf.cglib.reflect.FastClass;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.hibernate.InstantiationException;import org.hibernate.PropertyNotFoundException;import org.hibernate.util.ReflectHelper;/** * Defines a POJO-based instantiator for use from the tuplizers. */public class PojoInstantiator implements Instantiator, Serializable {	private static final Log log = LogFactory.getLog(PojoInstantiator.class);	private transient Constructor constructor;	private final Class mappedClass;	private final transient FastClass fastClass;	private final boolean embeddedIdentifier;	private final Class proxyInterface;	public PojoInstantiator(Class mappedClass, Class proxyInterface, FastClass fastClass, boolean embedded) {		this.mappedClass = mappedClass;		this.proxyInterface = proxyInterface;		this.fastClass = fastClass;		this.embeddedIdentifier = embedded;		try {			constructor = ReflectHelper.getDefaultConstructor(mappedClass);		}		catch ( PropertyNotFoundException pnfe ) {			log.info(			        "no default (no-argument) constructor for class: " +					mappedClass.getName() +					" (class must be instantiated by Interceptor)"			);			constructor = null;		}	}	private void readObject(java.io.ObjectInputStream stream)	throws ClassNotFoundException, IOException {		stream.defaultReadObject();		constructor = ReflectHelper.getDefaultConstructor(mappedClass);	}	public Object instantiate() {		if ( ReflectHelper.isAbstractClass(mappedClass) ) {			throw new InstantiationException( "Cannot instantiate abstract class or interface: ", mappedClass );		}		else if ( fastClass != null ) {			try {				return fastClass.newInstance();			}			catch ( Throwable t ) {				throw new InstantiationException( "Could not instantiate entity with CGLIB: ", mappedClass, t );			}		}		else if ( constructor == null ) {			throw new InstantiationException( "No default constructor for entity: ", mappedClass );		}		else {			try {				return constructor.newInstance( null );			}			catch ( Exception e ) {				throw new InstantiationException( "Could not instantiate entity: ", mappedClass, e );			}		}	}		public Object instantiate(Serializable id) {		if ( embeddedIdentifier && id != null && id.getClass().equals(mappedClass) ) {			return id;		}		else {			return instantiate();		}	}	public boolean isInstance(Object object) {		return mappedClass.isInstance(object) || 				( proxyInterface!=null && proxyInterface.isInstance(object) ); //this one needed only for guessEntityMode()	}}

⌨️ 快捷键说明

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