1. 关键方法:
SQLQuery createSQLQuery(String queryString)
为给定的queryString创建一个SQLQuery(用于操作和执行的查询实例)实例;
2. 用法:
(1)SQLQuery.addEntity(Class entityType)
:生成一个实体不用指定别名,一般用于受hibernate托管的实体;
Query query = this.getSession().createSQLQuery(sqlString).addEntity(User.class).list();
(2)SQLQuery.setResultTransformer(ResultTransformer transformer):生成一个实体需要指定别名,一般用于不受hibernate托管的实体;
Query query = this.getSession().createSQLQuery(sqlString).setResultTransformer(Transformers.aliasToBean(UserPO.class));
3. 注意:
SQLQuery.addScalar(String columnAlias,Type type):addScalar用来声明查询的列的属性,用不用看需要
session.createSQLQuery(sql).addScalar("id",IntegerType.INSTANCE).addScalar("name", StringType.INSTANCE).setResultTransformer(Transformers.aliasToBean(UserPO.class)).list();