推举利用getHibernateTemplate().executeWithNativeSession() +SQLQuery方法。
下面我用自己写的代码为例,进行说明。
下面是dao层的我写的一段代码,供参考
/**
* 查询卡等级
* @author yangliang
* @created 2011-11-24 下午05:31:33
*/
@SuppressWarnings("unchecked")
@Override
public List queryCardGrade() {
final String sql = "select t.ID id,t.NAME name,TC.PRIORITY_C priorityC from T_CARD_GRADE t,T_CARD_GRADE_CSTM TC where t.ID=TC.ID_C and t.DELETED=0";
List<CardGradeApi> gradeList = (List<CardGradeApi>) getHibernateTemplate()
.executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
return session
.createSQLQuery(sql)
.addScalar("id")
.addScalar("name")
.addScalar("priorityC")
.setResultTransformer(
Transformers
.aliasToBean(CardGradeApi.class))
.list();
}
});
if (null != gradeList) {
System.out.println(gradeList.size());
}
return gradeList;
说明:在进行多表查询时,可以将需要的字段定义成一个对象(如CardGradeApi),对象里面的属性对应sql语句中查询的字段的别名。
定义的对象代码如下:
/**
* 查询出来的卡等级对象信息
*
* @author yangliang
* @version 1.0
* @created 2011-11-24 下午05:38:30
* @history
* @see
*/
public class CardGradeApi {
private String id ;
private String name;
private BigDecimal priorityC;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getPriorityC() {
return priorityC;
}
public void setPriorityC(BigDecimal priorityC) {
this.priorityC = priorityC;
}
}
关于Hibernate查询的各种方式效率比较,可以参考网上这篇文章:http://ld.ldyef.org.cn/gongsi/543.html
请大家指出不足之后,进行交流,我的邮箱:576017120@qq.com
类型转换类型出现错误的时候,可以这样做:.addScalar("pointsC",new FloatType())===,以前用过,不过这次为了不报这个类型错误,我找了好久,最后还是通过找到自己以前写的代码才找到怎么解决的,诶。
分享到:
相关推荐
Hibernate的查询方式Hibernate的查询方式
Hibernate3.x查询方式代码示例,详细教程参考我的Blog:http://blog.csdn.net/boyazuo
hibernate中,对其中的查询方式进行总结,包括hql查询,条件查询,sql查询等
hibernate查询方法 大全 hql等
六种方式实现hibernate查询,六种方式实现hibernate查询,六种方式实现hibernate查询
利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~
三种查询方式跟踪Hibernate源码 学习源码必备
Hibernate注解方式、HQL查询
hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置...hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
数据查询与检索是Hibernate中的一... *标准化对象查询(Criteria Query):以对象的方式进行查询,将查询语句封装为对象操作。优点:可读性好,符合Java程序员的编码习惯。缺点:不够成熟,不支持投影(projection)或统
该源代码配了了解释,针对hibernate中多表查询的多种形式进行了总结,很有价值,有Object[]形式的查询,也有对象方式的查询 也有集合list形式的查询,
NULL 博文链接:https://364232252.iteye.com/blog/2368725
如果你正在学hibernate框架,我认为这份文档对你会有很大的关系。 如果你真的需要可以下载啊,积分又不是很多是吧,关键能学到知识就行了
Hibernate常用操作示例,包含详细注释说明,数据库初始化文件。使用和学习请参考:http://blog.csdn.net/daijin888888/article/details/51692942
hibernate的查询,对象状态以及数据加载方式
后台的查询功能单独用类StudentDao封装(与Action类脱离),StudentDao使用Spring创建,StudentDao中支持参数flag,0时直接使用静态数据查询,1时使用hibernate查询数据库,flag值采用Spring方式赋值(在xml中配置)
1、Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于把对象模型 表示的对象映射到基于 SQL 的关系模型数据结构中去,采用完全面向对象的 方式来操作数据库; 2、Hibernate 的主要作用是简化应用的数据...
是我自己做的springMVC+hibernate的环境,包括连接数据库查询,基于注解的方式
Hibernate3 学习笔记.ppt 一、O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、Hibernate Annotations ...六、Hibernate查询 七、Hibernate最佳实践 八、Hibernate Tool