Hibernate 用原生sql 方式
2011-04-14 17:32
218 查看
方式一:
String sql="select fi.id, fi.name FROM meeting_fee_item mfi,fee_item fi " +
"where fi.id=mfi.feeitemid and mfi.id=" + meetingFeeItemId;
Session session = getSessionFactory().getCurrentSession();
Query query=session.createSQLQuery(sql);
List alist= query.list();
List<FeeItem> list = new ArrayList<FeeItem>();
if (alist != null && alist.size() > 0) {
for (int i = 0; i < alist.size(); i++) {
Object[] objects = (Object[]) alist.get(i);
FeeItem feeItem = new FeeItem();
feeItem.setId((Integer) objects[0]); // id必须的
feeItem.setName((String) objects[1]); 相对应的配置所查询的字段,如fi.id,f.name,有多少个,就相应配
System.out.println("object: "+(String) objects[1]);
list.add(feeItem);
}
}
return list;
}
解决了类型转换异常问题。。
方式二:
回调模式
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql = "select *,d.roomNo as roomNo from (select a.id,a.name,a.zwu,b.name as unitsName,b.address,b.zip,a.phone,a.mail,a.cellphone from user a,units b where a.unitsId=b.id ";
if (unitsTypeId != null && unitsTypeId != 0) {
sql += " and b.unitstypeid=" + unitsTypeId;
}
sql += " ) c left join register d on c.id=d.userid ";
SQLQuery q = session.createSQLQuery(sql).addScalar("name",
Hibernate.STRING).addScalar("zwu", Hibernate.STRING)
.addScalar("unitsName", Hibernate.STRING).addScalar(
"address", Hibernate.STRING).addScalar("zip",
Hibernate.STRING).addScalar("phone",
Hibernate.STRING).addScalar("mail",
Hibernate.STRING).addScalar("cellphone",
Hibernate.STRING).addScalar("roomNo",
Hibernate.STRING);
。。。。
下面进行类型转换,大致如上一。
String sql="select fi.id, fi.name FROM meeting_fee_item mfi,fee_item fi " +
"where fi.id=mfi.feeitemid and mfi.id=" + meetingFeeItemId;
Session session = getSessionFactory().getCurrentSession();
Query query=session.createSQLQuery(sql);
List alist= query.list();
List<FeeItem> list = new ArrayList<FeeItem>();
if (alist != null && alist.size() > 0) {
for (int i = 0; i < alist.size(); i++) {
Object[] objects = (Object[]) alist.get(i);
FeeItem feeItem = new FeeItem();
feeItem.setId((Integer) objects[0]); // id必须的
feeItem.setName((String) objects[1]); 相对应的配置所查询的字段,如fi.id,f.name,有多少个,就相应配
System.out.println("object: "+(String) objects[1]);
list.add(feeItem);
}
}
return list;
}
解决了类型转换异常问题。。
方式二:
回调模式
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql = "select *,d.roomNo as roomNo from (select a.id,a.name,a.zwu,b.name as unitsName,b.address,b.zip,a.phone,a.mail,a.cellphone from user a,units b where a.unitsId=b.id ";
if (unitsTypeId != null && unitsTypeId != 0) {
sql += " and b.unitstypeid=" + unitsTypeId;
}
sql += " ) c left join register d on c.id=d.userid ";
SQLQuery q = session.createSQLQuery(sql).addScalar("name",
Hibernate.STRING).addScalar("zwu", Hibernate.STRING)
.addScalar("unitsName", Hibernate.STRING).addScalar(
"address", Hibernate.STRING).addScalar("zip",
Hibernate.STRING).addScalar("phone",
Hibernate.STRING).addScalar("mail",
Hibernate.STRING).addScalar("cellphone",
Hibernate.STRING).addScalar("roomNo",
Hibernate.STRING);
。。。。
下面进行类型转换,大致如上一。
相关文章推荐
- hibernate 执行原生sql的几种方式
- 【Hibernate】hibernate原生sql利用transformers返回多表自定义类型对象
- Hibernate 执行原生sql
- hibernate查询方式:HQL、SQL、Criteria方法、命名、动态分离查询、例子查询
- 使用Hibernate SQLQuery执行原生SQL
- hibernate 执行原生sql,select返回string,long
- java---j2ee---hibernate执行原生Sql语句的方法
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- hibernate参考手册之---原生SQL查询
- hibernate 原生sql的使用
- hibernate使用原生的sql,解决管理查询、结果集封装等问题
- Hibernate 函数 ,子查询 和原生SQL查询
- 详解Java的Hibernate框架中的缓存与原生SQL语句的使用
- Hibernate的原生SQL查询
- hibernate----懒加载,原生 sql查询及多种hql查询,表连接查询
- Hibernate书写原生SQL语句查询(用于复杂多表查询)
- hibernate中的sql语句写在xxx.hbm.xml中解决hibernate中原生sql的硬编码问题
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- Hibernate 使用原生SQL