javassistproxyfactory.java

来自「一个Java持久层类库」· Java 代码 · 共 62 行

JAVA
62
字号
package org.hibernate.proxy.pojo.javassist;import java.io.Serializable;import java.lang.reflect.Method;import java.util.Set;import org.hibernate.HibernateException;import org.hibernate.engine.SessionImplementor;import org.hibernate.proxy.HibernateProxy;import org.hibernate.proxy.ProxyFactory;import org.hibernate.type.AbstractComponentType;/** * A {@link ProxyFactory} implementation for producing Javassist-based proxies. * * @author Muga Nishizawa */public class JavassistProxyFactory implements ProxyFactory, Serializable {	protected static final Class[] NO_CLASSES = new Class[0];	private Class persistentClass;	private String entityName;	private Class[] interfaces;	private Method getIdentifierMethod;	private Method setIdentifierMethod;	private AbstractComponentType componentIdType;	private Class factory;	public void postInstantiate(			final String entityName,			final Class persistentClass,	        final Set interfaces,			final Method getIdentifierMethod,	        final Method setIdentifierMethod,			AbstractComponentType componentIdType) throws HibernateException {		this.entityName = entityName;		this.persistentClass = persistentClass;		this.interfaces = (Class[]) interfaces.toArray(NO_CLASSES);		this.getIdentifierMethod = getIdentifierMethod;		this.setIdentifierMethod = setIdentifierMethod;		this.componentIdType = componentIdType;		factory = JavassistLazyInitializer.getProxyFactory( persistentClass, this.interfaces );	}	public HibernateProxy getProxy(			Serializable id,	        SessionImplementor session) throws HibernateException {		return JavassistLazyInitializer.getProxy(				factory,		        entityName,				persistentClass,		        interfaces,		        getIdentifierMethod,				setIdentifierMethod,		        componentIdType,		        id,		        session		);	}}

⌨️ 快捷键说明

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