zoukankan      html  css  js  c++  java
  • hibernate 中addScalar的用法与作用

    作用:

    1.提高性能

    2.指定要返回哪几个字段,为指定的不返回(主要用于select *查询全部)

    3.也可指定返回字段的具体类型

    常用于自定义本地sql中

    如:

    StringBuffer sql=new StringBuffer("select CONTENTID as "contentid",STATUS as "status" from CONTENTDETAIL where 1=1  and  TO_CHAR(PUBLISHDATE,'yyyy-mm-dd')='"+tadayTime+"'");
            Session session=sessionFactory.getCurrentSession();
            SQLQuery sqlQuery =session.createSQLQuery(sql.toString()).addScalar("contentid", StandardBasicTypes.LONG).addScalar("status", StandardBasicTypes.INTEGER);
            sqlQuery.setResultTransformer(Transformers.aliasToBean(QtmThridPartMessageContentDetailDto.class));

    最后附上

    StandardBasicTypes这个类的源码,供查询

    /*
     * Hibernate, Relational Persistence for Idiomatic Java
     *
     * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
     * indicated by the @author tags or express copyright attribution
     * statements applied by the authors.  All third-party contributions are
     * distributed under license by Red Hat Inc.
     *
     * This copyrighted material is made available to anyone wishing to use, modify,
     * copy, or redistribute it subject to the terms and conditions of the GNU
     * Lesser General Public License, as published by the Free Software Foundation.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
     * for more details.
     *
     * You should have received a copy of the GNU Lesser General Public License
     * along with this distribution; if not, write to:
     * Free Software Foundation, Inc.
     * 51 Franklin Street, Fifth Floor
     * Boston, MA  02110-1301  USA
     */
    package org.hibernate.type;
    
    import java.util.HashSet;
    import java.util.Set;
    
    import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
    
    /**
     * Centralizes access to the standard set of basic {@link Type types}.
     * <p/>
     * Type mappings can be adjusted per {@link org.hibernate.SessionFactory}.  These adjusted mappings can be accessed
     * from the {@link org.hibernate.TypeHelper} instance obtained via {@link org.hibernate.SessionFactory#getTypeHelper()}
     *
     * @see BasicTypeRegistry
     * @see org.hibernate.TypeHelper
     * @see org.hibernate.SessionFactory#getTypeHelper()
     *
     * @author Gavin King
     * @author Steve Ebersole
     */
    @SuppressWarnings( {"UnusedDeclaration"})
    public final class StandardBasicTypes {
        private StandardBasicTypes() {
        }
    
        private static final Set<SqlTypeDescriptor> SQL_TYPE_DESCRIPTORS = new HashSet<SqlTypeDescriptor>();
    
        /**
         * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#BIT BIT}.
         *
         * @see BooleanType
         */
        public static final BooleanType BOOLEAN = BooleanType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#INTEGER INTEGER}.
         *
         * @see NumericBooleanType
         */
        public static final NumericBooleanType NUMERIC_BOOLEAN = NumericBooleanType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'T'/'F').
         *
         * @see TrueFalseType
         */
        public static final TrueFalseType TRUE_FALSE = TrueFalseType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'Y'/'N').
         *
         * @see YesNoType
         */
        public static final YesNoType YES_NO = YesNoType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Byte} to JDBC {@link java.sql.Types#TINYINT TINYINT}.
         */
        public static final ByteType BYTE = ByteType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Short} to JDBC {@link java.sql.Types#SMALLINT SMALLINT}.
         *
         * @see ShortType
         */
        public static final ShortType SHORT = ShortType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Integer} to JDBC {@link java.sql.Types#INTEGER INTEGER}.
         *
         * @see IntegerType
         */
        public static final IntegerType INTEGER = IntegerType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Long} to JDBC {@link java.sql.Types#BIGINT BIGINT}.
         *
         * @see LongType
         */
        public static final LongType LONG = LongType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Float} to JDBC {@link java.sql.Types#FLOAT FLOAT}.
         *
         * @see FloatType
         */
        public static final FloatType FLOAT = FloatType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Double} to JDBC {@link java.sql.Types#DOUBLE DOUBLE}.
         *
         * @see DoubleType
         */
        public static final DoubleType DOUBLE = DoubleType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.math.BigInteger} to JDBC {@link java.sql.Types#NUMERIC NUMERIC}.
         *
         * @see BigIntegerType
         */
        public static final BigIntegerType BIG_INTEGER = BigIntegerType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.math.BigDecimal} to JDBC {@link java.sql.Types#NUMERIC NUMERIC}.
         *
         * @see BigDecimalType
         */
        public static final BigDecimalType BIG_DECIMAL = BigDecimalType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Character} to JDBC {@link java.sql.Types#CHAR CHAR(1)}.
         *
         * @see CharacterType
         */
        public static final CharacterType CHARACTER = CharacterType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see StringType
         */
        public static final StringType STRING = StringType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.net.URL} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see UrlType
         */
        public static final UrlType URL = UrlType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Time}) to JDBC
         * {@link java.sql.Types#TIME TIME}.
         *
         * @see TimeType
         */
        public static final TimeType TIME = TimeType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Date}) to JDBC
         * {@link java.sql.Types#DATE DATE}.
         *
         * @see TimeType
         */
        public static final DateType DATE = DateType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Date} ({@link java.sql.Timestamp}) to JDBC
         * {@link java.sql.Types#TIMESTAMP TIMESTAMP}.
         *
         * @see TimeType
         */
        public static final TimestampType TIMESTAMP = TimestampType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Calendar} to JDBC
         * {@link java.sql.Types#TIMESTAMP TIMESTAMP}.
         *
         * @see CalendarType
         */
        public static final CalendarType CALENDAR = CalendarType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Calendar} to JDBC
         * {@link java.sql.Types#DATE DATE}.
         *
         * @see CalendarDateType
         */
        public static final CalendarDateType CALENDAR_DATE = CalendarDateType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Class} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see ClassType
         */
        public static final ClassType CLASS = ClassType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Locale} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see LocaleType
         */
        public static final LocaleType LOCALE = LocaleType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.Currency} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see CurrencyType
         */
        public static final CurrencyType CURRENCY = CurrencyType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.TimeZone} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see TimeZoneType
         */
        public static final TimeZoneType TIMEZONE = TimeZoneType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.UUID} to JDBC {@link java.sql.Types#BINARY BINARY}.
         *
         * @see UUIDBinaryType
         */
        public static final UUIDBinaryType UUID_BINARY = UUIDBinaryType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.util.UUID} to JDBC {@link java.sql.Types#CHAR CHAR}.
         *
         * @see UUIDCharType
         */
        public static final UUIDCharType UUID_CHAR = UUIDCharType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}.
         *
         * @see BinaryType
         */
        public static final BinaryType BINARY = BinaryType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Byte Byte[]} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}.
         *
         * @see WrapperBinaryType
         */
        public static final WrapperBinaryType WRAPPER_BINARY = WrapperBinaryType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#LONGVARBINARY LONGVARBINARY}.
         *
         * @see ImageType
         * @see #MATERIALIZED_BLOB
         */
        public static final ImageType IMAGE = ImageType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.sql.Blob} to JDBC {@link java.sql.Types#BLOB BLOB}.
         *
         * @see BlobType
         * @see #MATERIALIZED_BLOB
         */
        public static final BlobType BLOB = BlobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@code byte[]} to JDBC {@link java.sql.Types#BLOB BLOB}.
         *
         * @see MaterializedBlobType
         * @see #MATERIALIZED_BLOB
         * @see #IMAGE
         */
        public static final MaterializedBlobType MATERIALIZED_BLOB = MaterializedBlobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@code char[]} to JDBC {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see CharArrayType
         */
        public static final CharArrayType CHAR_ARRAY = CharArrayType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link Character Character[]} to JDBC
         * {@link java.sql.Types#VARCHAR VARCHAR}.
         *
         * @see CharacterArrayType
         */
        public static final CharacterArrayType CHARACTER_ARRAY = CharacterArrayType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#LONGVARCHAR LONGVARCHAR}.
         * <p/>
         * Similar to a {@link #MATERIALIZED_CLOB}
         *
         * @see TextType
         */
        public static final TextType TEXT = TextType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#LONGNVARCHAR LONGNVARCHAR}.
         * <p/>
         * Similar to a {@link #MATERIALIZED_NCLOB}
         *
         * @see NTextType
         */
        public static final NTextType NTEXT = NTextType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.sql.Clob} to JDBC {@link java.sql.Types#CLOB CLOB}.
         *
         * @see ClobType
         * @see #MATERIALIZED_CLOB
         */
        public static final ClobType CLOB = ClobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.sql.NClob} to JDBC {@link java.sql.Types#NCLOB NCLOB}.
         *
         * @see NClobType
         * @see #MATERIALIZED_NCLOB
         */
        public static final NClobType NCLOB = NClobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#CLOB CLOB}.
         *
         * @see MaterializedClobType
         * @see #MATERIALIZED_CLOB
         * @see #TEXT
         */
        public static final MaterializedClobType MATERIALIZED_CLOB = MaterializedClobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link String} to JDBC {@link java.sql.Types#NCLOB NCLOB}.
         *
         * @see MaterializedNClobType
         * @see #MATERIALIZED_CLOB
         * @see #NTEXT
         */
        public static final MaterializedNClobType MATERIALIZED_NCLOB = MaterializedNClobType.INSTANCE;
    
        /**
         * The standard Hibernate type for mapping {@link java.io.Serializable} to JDBC {@link java.sql.Types#VARBINARY VARBINARY}.
         * <p/>
         * See especially the discussion wrt {@link ClassLoader} determination on {@link SerializableType}
         *
         * @see SerializableType
         */
        public static final SerializableType SERIALIZABLE = SerializableType.INSTANCE;
    }


  • 相关阅读:
    CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
    CentOS 7 配置hadoop(四) 配置hive(伪分布)
    CentOS 7 配置hadoop(三) 配置hbase(伪分布)
    java高级之NIO
    字符编码与序列化
    java高级之IO流 -2
    java中的值传递和引用传递
    事务相关知识点
    mybatis中批量更新sql语句,trim、foreach标签,varchar定义理解
    java IO流之File类的使用
  • 原文地址:https://www.cnblogs.com/huzi007/p/7998764.html
Copyright © 2011-2022 走看看