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

📄 abstractqueryimpl.java

📁 介绍了hibernate的入门有一些基本常用的事例
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		setParameter(name, locale, Hibernate.LOCALE);		return this;	}	public Query setCalendar(String name, Calendar calendar) {		setParameter(name, calendar, Hibernate.CALENDAR);		return this;	}	public Query setCalendarDate(String name, Calendar calendar) {		setParameter(name, calendar, Hibernate.CALENDAR_DATE);		return this;	}	public Query setLong(String name, long val) {		setParameter(name, new Long(val), Hibernate.LONG);		return this;	}	public Query setParameter(String name, Object val, Type type) {		if( !actualNamedParameters.contains(name) ) {			 throw new IllegalArgumentException("Parameter " + name + " does not exist as a named parameter in [" + getQueryString() + "]");		}		else {			 namedParameters.put( name, new TypedValue( type, val, session.getEntityMode() ) );			 return this;		}	}	public Query setSerializable(String name, Serializable val) {		setParameter(name, val, Hibernate.SERIALIZABLE);		return this;	}	public Query setShort(String name, short val) {		setParameter(name, new Short(val), Hibernate.SHORT);		return this;	}	public Query setString(String name, String val) {		setParameter(name, val, Hibernate.STRING);		return this;	}	public Query setTime(String name, Date date) {		setParameter(name, date, Hibernate.TIME);		return this;	}	public Query setTimestamp(String name, Date date) {		setParameter(name, date, Hibernate.TIMESTAMP);		return this;	}	public Query setBigDecimal(int position, BigDecimal number) {		setParameter(position, number, Hibernate.BIG_DECIMAL);		return this;	}	public Query setBigDecimal(String name, BigDecimal number) {		setParameter(name, number, Hibernate.BIG_DECIMAL);		return this;	}	public Query setBigInteger(int position, BigInteger number) {		setParameter(position, number, Hibernate.BIG_DECIMAL);		return this;	}	public Query setBigInteger(String name, BigInteger number) {		setParameter(name, number, Hibernate.BIG_DECIMAL);		return this;	}	public Query setParameter(int position, Object val) throws HibernateException {		if (val == null) {			setParameter( position, val, Hibernate.SERIALIZABLE );		} 		else {			setParameter( position, val, guessType(val) );		}		return this;	}	public Query setParameter(String name, Object val) throws HibernateException {		if (val == null) {			setParameter( name, val, Hibernate.SERIALIZABLE );		} 		else {			setParameter( name, val, guessType(val) );		}		return this;	}	private Type guessType(Object param) throws HibernateException {		Class clazz = HibernateProxyHelper.getClassWithoutInitializingProxy(param);		return guessType(clazz);	}	private Type guessType(Class clazz) throws HibernateException {		String typename = clazz.getName();		Type type = TypeFactory.heuristicType(typename);		boolean serializable = type!=null && type instanceof SerializableType;		if (type==null || serializable) {			try {				session.getFactory().getEntityPersister( clazz.getName() );			}			catch (MappingException me) {				if (serializable) {					return type;				}				else {					throw new HibernateException("Could not determine a type for class: " + typename);				}			}			return Hibernate.entity(clazz);		}		else {			return type;		}	}	public Type[] getReturnTypes() throws HibernateException {		return session.getFactory().getReturnTypes( queryString );	}	public String[] getReturnAliases() throws HibernateException {		return session.getFactory().getReturnAliases( queryString );	}	public Query setParameterList(String name, Collection vals, Type type) throws HibernateException {		if( !actualNamedParameters.contains(name) ) {			   throw new IllegalArgumentException("Parameter " + name + " does not exist as a named parameter in [" + getQueryString() + "]");		}		namedParameterLists.put( name, new TypedValue( type, vals, session.getEntityMode() ) );		return this;	}		/**	 * Warning: adds new parameters to the argument by side-effect!	 */	protected String bindParameterLists(Map namedParamsCopy) {		String query = this.queryString;		Iterator iter = namedParameterLists.entrySet().iterator();		while ( iter.hasNext() ) {			Map.Entry me = (Map.Entry) iter.next();			query = bindParameterList( query, (String) me.getKey(), (TypedValue) me.getValue(), namedParamsCopy );		}		return query;	}	/**	 * Warning: adds new parameters to the argument by side-effect!	 */	private String bindParameterList(String query, String name, TypedValue typedList, Map namedParamsCopy) {		Collection vals = (Collection) typedList.getValue();		Type type = typedList.getType();		StringBuffer list = new StringBuffer(16);		Iterator iter = vals.iterator();		int i=0;		while ( iter.hasNext() ) {			String alias = name + i++ + '_';			namedParamsCopy.put(alias, new TypedValue( type, iter.next(), session.getEntityMode() ) );			list.append( ParserHelper.HQL_VARIABLE_PREFIX + alias );			if ( iter.hasNext() ) list.append(", ");		}		return StringHelper.replace( query, ParserHelper.HQL_VARIABLE_PREFIX + name, list.toString(), true );	}	public Query setParameterList(String name, Collection vals) throws HibernateException {		if (vals==null) {			throw new QueryException("Collection must be not null!");		}		if(vals.size()==0) {			setParameterList(name, vals, null);		}		else {			setParameterList(name, vals, guessType( vals.iterator().next() ) );		}		return this;	}	public String[] getNamedParameters() throws HibernateException {		return (String[]) actualNamedParameters.toArray(new String[actualNamedParameters.size()]);	}	private void initParameterBookKeeping() {		StringTokenizer st = new StringTokenizer(queryString, ParserHelper.HQL_SEPARATORS);		Set result = new HashSet();		while ( st.hasMoreTokens() ) {			String string = st.nextToken();			if( string.startsWith(ParserHelper.HQL_VARIABLE_PREFIX) ) {				result.add( string.substring(1) );			}		}		actualNamedParameters = result;		positionalParameterCount = StringHelper.countUnquoted(queryString, '?');	}	public Query setProperties(Object bean) throws HibernateException {		Class clazz = bean.getClass();		String[] params = getNamedParameters();		for (int i = 0; i < params.length; i++) {			String namedParam = params[i];			try {				Getter getter = ReflectHelper.getGetter(clazz, namedParam);				Class retType = getter.getReturnType();				final Object object = getter.get( bean );				if ( Collection.class.isAssignableFrom(retType) ) {					setParameterList( namedParam, (Collection) object );				}				else if ( retType.isArray() ) {				 	setParameterList( namedParam, (Object[]) object );				}				else {					setParameter( namedParam, object, guessType( getter.getReturnType() ) );				}			}			catch (PropertyNotFoundException pnfe) {}		}		return this;	}	public Query setParameterList(String name, Object[] vals, Type type)		throws HibernateException {		return setParameterList(name, Arrays.asList(vals), type);	}	public Query setParameterList(String name, Object[] vals)		throws HibernateException {		return setParameterList( name, Arrays.asList(vals) );	}	SessionImplementor getSession() {		return session;	}	public Object uniqueResult() throws HibernateException {		return uniqueElement( list() );	}	public int executeUpdate() throws HibernateException {		throw new UnsupportedOperationException( "Update queries only supported through HQL" );	}	static Object uniqueElement(List list) throws NonUniqueResultException {		int size = list.size();		if (size==0) return null;		Object first = list.get(0);		for ( int i=1; i<size; i++ ) {			if ( list.get(i)!=first ) {				throw new NonUniqueResultException( list.size() );			}		}		return first;	}	protected RowSelection getRowSelection() {		return selection;	}	public Type[] typeArray() {		return ArrayHelper.toTypeArray( getTypes() );	}		public Object[] valueArray() {		return getValues().toArray();	}	public QueryParameters getQueryParameters(Map namedParams) {		return new QueryParameters(				typeArray(),				valueArray(),				namedParams,				getLockModes(),				getSelection(),				readOnly,				cacheable,				cacheRegion,				//forceCacheRefresh,				comment,				collectionKey==null ?						null :						new Serializable[] { collectionKey }		);	}		protected abstract Map getLockModes();	public Query setCacheable(boolean cacheable) {		this.cacheable = cacheable;		return this;	}	public Query setCacheRegion(String cacheRegion) {		if (cacheRegion != null)			this.cacheRegion = cacheRegion.trim();		return this;	}	public Query setComment(String comment) {		this.comment = comment;		return this;	}		public String toString() {		return StringHelper.unqualify( getClass().getName() ) + '(' + queryString + ')';	}		protected void before() {		if ( flushMode!=null ) {			sessionFlushMode = getSession().getFlushMode();			getSession().setFlushMode(flushMode);		}		if ( cacheMode!=null ) {			sessionCacheMode = getSession().getCacheMode();			getSession().setCacheMode(cacheMode);		}	}		protected void after() {		if (sessionFlushMode!=null) {			getSession().setFlushMode(sessionFlushMode);			sessionFlushMode = null;		}		if (sessionCacheMode!=null) {			getSession().setCacheMode(sessionCacheMode);			sessionCacheMode = null;		}	}		public Query setCollectionKey(Serializable collectionKey) {		this.collectionKey = collectionKey;		return this;	}		public Query setParameters(Object[] values, Type[] types) {		this.values = Arrays.asList(values);		this.types = Arrays.asList(types);		return this;	}		public boolean isReadOnly() {		return readOnly;	}		public Query setReadOnly(boolean readOnly) {		this.readOnly = readOnly;		return this;	}}

⌨️ 快捷键说明

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