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

📄 myentityinstantiator.java

📁 hibernate 开源框架的代码 jar包希望大家能喜欢
💻 JAVA
字号:
package org.hibernate.test.dynamicentity.tuplizer;import org.hibernate.tuple.Instantiator;import org.hibernate.test.dynamicentity.Customer;import org.hibernate.test.dynamicentity.ProxyHelper;import org.hibernate.test.dynamicentity.Company;import org.hibernate.test.dynamicentity.DataProxyHandler;import org.hibernate.test.dynamicentity.Address;import org.hibernate.test.dynamicentity.Person;import org.hibernate.util.ReflectHelper;import org.hibernate.HibernateException;import java.io.Serializable;import java.lang.reflect.Proxy;import java.lang.reflect.InvocationHandler;/** * @author <a href="mailto:steve@hibernate.org">Steve Ebersole </a> */public class MyEntityInstantiator implements Instantiator {	private final String entityName;	public MyEntityInstantiator(String entityName) {		this.entityName = entityName;	}	public Object instantiate(Serializable id) {		if ( Person.class.getName().equals( entityName ) ) {			return ProxyHelper.newPersonProxy( id );		}		if ( Customer.class.getName().equals( entityName ) ) {			return ProxyHelper.newCustomerProxy( id );		}		else if ( Company.class.getName().equals( entityName ) ) {			return ProxyHelper.newCompanyProxy( id );		}		else if ( Address.class.getName().equals( entityName ) ) {			return ProxyHelper.newAddressProxy( id );		}		else {			throw new IllegalArgumentException( "unknown entity for instantiation [" + entityName + "]" );		}	}	public Object instantiate() {		return instantiate( null );	}	public boolean isInstance(Object object) {		String resolvedEntityName = null;		if ( Proxy.isProxyClass( object.getClass() ) ) {			InvocationHandler handler = Proxy.getInvocationHandler( object );			if ( DataProxyHandler.class.isAssignableFrom( handler.getClass() ) ) {				DataProxyHandler myHandler = ( DataProxyHandler ) handler;				resolvedEntityName = myHandler.getEntityName();			}		}		try {			return ReflectHelper.classForName( entityName ).isInstance( object );		}		catch( Throwable t ) {			throw new HibernateException( "could not get handle to entity-name as interface : " + t );		}//		return entityName.equals( resolvedEntityName );	}}

⌨️ 快捷键说明

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