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

📄 aliastobeanresulttransformer.java

📁 一个Java持久层类库
💻 JAVA
字号:
/* * Created on 27-Jan-2005 * */package org.hibernate.transform;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.property.ChainedPropertyAccessor;import org.hibernate.property.PropertyAccessor;import org.hibernate.property.PropertyAccessorFactory;import org.hibernate.property.Setter;/** * Result transformer that allows to transform a result to  * a user specified class which will be populated via setter   * methods or fields matching the alias names.  *  * <pre> * List resultWithAliasedBean = s.createCriteria(Enrolment.class) *			.createAlias("student", "st") *			.createAlias("course", "co") *			.setProjection( Projections.projectionList() *					.add( Projections.property("co.description"), "courseDescription" ) *			) *			.setResultTransformer( new AliasToBeanResultTransformer(StudentDTO.class) ) *			.list(); * *  StudentDTO dto = (StudentDTO)resultWithAliasedBean.get(0); *	</pre> * * @author max * */public class AliasToBeanResultTransformer implements ResultTransformer {		private final Class resultClass;	private Setter[] setters;	private PropertyAccessor propertyAccessor;		public AliasToBeanResultTransformer(Class resultClass) {		if(resultClass==null) throw new IllegalArgumentException("resultClass cannot be null");		this.resultClass = resultClass;		propertyAccessor = new ChainedPropertyAccessor(new PropertyAccessor[] { PropertyAccessorFactory.getPropertyAccessor(resultClass,null), PropertyAccessorFactory.getPropertyAccessor("field")}); 			}	public Object transformTuple(Object[] tuple, String[] aliases) {		Object result;				try {			if(setters==null) {				setters = new Setter[aliases.length];				for (int i = 0; i < aliases.length; i++) {					String alias = aliases[i];					if(alias != null) {						setters[i] = propertyAccessor.getSetter(resultClass, alias);					}				}			}			result = resultClass.newInstance();						for (int i = 0; i < aliases.length; i++) {				if(setters[i]!=null) {					setters[i].set(result, tuple[i], null);				}			}		} catch (InstantiationException e) {			throw new HibernateException("Could not instantiate resultclass: " + resultClass.getName());		} catch (IllegalAccessException e) {			throw new HibernateException("Could not instantiate resultclass: " + resultClass.getName());		}				return result;	}	public List transformList(List collection) {		return collection;	}}

⌨️ 快捷键说明

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