serializableproxy.java

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

JAVA
75
字号
package org.hibernate.proxy.pojo.javassist;import java.io.Serializable;import java.lang.reflect.Method;import org.hibernate.HibernateException;import org.hibernate.type.AbstractComponentType;/** * Serializable placeholder for Javassist proxies */public final class SerializableProxy implements Serializable {	private String entityName;	private Class persistentClass;	private Class[] interfaces;	private Serializable id;	private Class getIdentifierMethodClass;	private Class setIdentifierMethodClass;	private String getIdentifierMethodName;	private String setIdentifierMethodName;	private Class[] setIdentifierMethodParams;	private AbstractComponentType componentIdType;	public SerializableProxy() {}	public SerializableProxy(		final String entityName,	    final Class persistentClass,	    final Class[] interfaces,	    final Serializable id,	    final Method getIdentifierMethod,	    final Method setIdentifierMethod,	    AbstractComponentType componentIdType	) {		this.entityName = entityName;		this.persistentClass = persistentClass;		this.interfaces = interfaces;		this.id = id;		if (getIdentifierMethod!=null) {			getIdentifierMethodClass = getIdentifierMethod.getDeclaringClass();			getIdentifierMethodName = getIdentifierMethod.getName();		}		if (setIdentifierMethod!=null) {			setIdentifierMethodClass = setIdentifierMethod.getDeclaringClass();			setIdentifierMethodName = setIdentifierMethod.getName();			setIdentifierMethodParams = setIdentifierMethod.getParameterTypes();		}		this.componentIdType = componentIdType;	}	private Object readResolve() {		try {			return JavassistLazyInitializer.getProxy(				entityName,				persistentClass,				interfaces,				getIdentifierMethodName==null ?					null :					getIdentifierMethodClass.getDeclaredMethod(getIdentifierMethodName, null),				setIdentifierMethodName==null ?					null :					setIdentifierMethodClass.getDeclaredMethod(setIdentifierMethodName, setIdentifierMethodParams),					componentIdType,				id,				null			);		}		catch (NoSuchMethodException nsme) {			throw new HibernateException("could not create proxy for entity: " + entityName, nsme);		}	}}

⌨️ 快捷键说明

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