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;
}
hibernate 中addScalar的用法与作用的更多相关文章
- hibernate中 inverse的用法(转载)
http://blog.csdn.net/xiaoxian8023/article/details/15380529 一.Inverse是hibernate双向关系中的基本概念.inverse的真正作 ...
- Hibernate中Criteria的用法
概念 Criterion 是 Criteria 的查询条件.Criteria 提供了 add(Criterion criterion) 方法来添加查询条件. Criterion 接口的主要实现包括: ...
- 一口一口吃掉Hibernate(八)——Hibernate中inverse的用法
一.Inverse是hibernate双向关系中的基本概念.inverse的真正作用就是指定由哪一方来维护之间的关联关系.当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之 ...
- 转 Hibernate中cascade和inverse的作用
Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...
- Hibernate中cascade和inverse的作用
Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...
- Hibernate中Restrictions查询用法(转)
Restrictions查询用法 HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equa ...
- 详解在Hibernate中配置数据库方言的作用和好处以及各种数据库的方言连接
Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异,因此Hibernate需 ...
- hibernate中SessionFactory与Session的作用
首先,SessionFactory是线程安全的,SessionFactory用到了工厂模式. 其创建和销毁需要耗费很大的资源,所以一个应用中的一个数据库一般只对应一个sessionfactory. S ...
- Python中pass的用法、作用
pass主要作用就是占位,让代码整体完整.如果定义一个函数里面为空或一个判断写好了之后还没想好满足条件需要执行执行什么逻辑,又想留着后面使用,但是函数和判断里面为空,那么就会报错,当你还没想清楚函数内 ...
随机推荐
- [Yii2]yiisoft/yii2 2.0.2 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found
composer require "dektrium/yii2-user:0.9.*@dev" 一直安装失败,提示:Your requirements could not be r ...
- python将json转csv
现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...
- 关于easyui展示慢的Debug
同事开发的软件系统采用Easyui做的前台界面,当业务变得比较复杂之后,展示效果就变得很慢,于是我开始了原因的排查,现在已经找到了具体的原因,所以拿出来与大家一起分享调试过程. 既然调试的是前端,那么 ...
- Selenium下拉菜单(Select)的操作-----Selenium快速入门(五)
对于一般元素的操作,我们只要掌握本系列的第二,三章即可大致足够.对于下拉菜单(Select)的操作,Selenium有专门的类Select进行处理.文档地址为:http://seleniumhq.gi ...
- ANE-调用原生组件横屏定位问题
当我们的应用是横的时候,利用ANE调用原生组件如果处理不当,掉出来的组件会是竖的.那么我么要怎么做才能免去自己手动旋转组件这个破事呢.其实很简单 webView = [[UIWebView alloc ...
- 【SSH学习笔记】用Struts2实现简单的用户登录
准备阶段 在使用学习Struts2的时候首先要下载相应的架包 Struts2资源下载 这里建议下载第一个,在struts-2.5.14.1-all.zip里有很多实用的东西,不仅有架包还有官方为开发者 ...
- LOJ#2082. 「JSOI2016」炸弹攻击 2(计算几何+双指针)
题面 传送门 题解 我们枚举一下发射源,并把敌人和激光塔按极角排序,那么一组合法解就是两个极角之差不超过\(\pi\)且中间有敌人的三元组数,预处理一下前缀和然后用双指针就行了 //minamoto ...
- lamp-linux3
LAMP编程之Linux(3) 一.权限管理 1.权限介绍(重点) 在Linux中分别有读.写.执行权限: 读权限: 对于文件夹来说,读权限影响用户是否能够列出目录结构 对于文件来说,读权限影响用户是 ...
- Ionic2使用TypeScript调用自定义JavaScript脚本
在项目app目录下面写一个.d.ts 里面声明你要引用JS库里面定义的变量,变量名要保持一致 declare var Strophe: any; 然后把JS库放在www目录下面 然后在index.ht ...
- HEOI 十二省联考退役记
Day -1 简要的说了些注意事项 一整天都在刷树套树的水题 退役的感觉近了 Day 0 早上收拾好东西去了火车站之后 火车站居然还没有开门 等了半天 我们是从衡水到德州再到秦皇岛 到了德州之后 去车 ...