hibernate 使用sql 查询(setResultTransformer)
使用方法举例如下:
public List findByOid(Object oid) {
log.debug("finding all WatershedAnalyse instances");
Session session=getSessionFactory().openSession();
SQLQuery query=null;
try {
String queryString = "SELECT oid,bdatetime,basin_code,p,e FROM basin_in WHERE oid="+oid;
query=session.createSQLQuery(queryString);
query.addScalar("oid", Hibernate.INTEGER);
query.addScalar("bdatetime", Hibernate.STRING);
query.addScalar("basin_code", Hibernate.STRING);
query.addScalar("p", Hibernate.DOUBLE);
query.addScalar("e", Hibernate.DOUBLE);
query.setResultTransformer(Transformers.aliasToBean(BasinIn.class));
return query.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}finally{
session.close();
}
}
使用setResultTransformer 要使用query.addScalar("oid", Hibernate.INTEGER)指定
返回类型 否则会抛出以下异常。
Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.serialssoloutions.database.entity.ProductInfo.id
Caused by: java.lang.IllegalArgumentException: argument type mismatch
BasinIn bean如下
public class BasinIn implements java.io.Serializable {
private Integer oid;
private String bdatetime;
private String basin_code;
private Double p;
private Double e;
public BasinIn() {
}
public String getBasin_code() {
return basin_code;
}
public void setBasin_code(String basin_code) {
this.basin_code = basin_code;
}
public Integer getOid() {
return oid;
}
public void setOid(Integer oid) {
this.oid = oid;
}
public Double getP() {
return p;
}
public void setP(Double p) {
this.p = p;
}
public Double getE() {
return e;
}
public void setE(Double e) {
this.e = e;
}
public String getBdatetime() {
return bdatetime;
}
public void setBdatetime(String bdatetime) {
this.bdatetime = bdatetime;
}
}
hibernate 使用sql 查询(setResultTransformer)的更多相关文章
- Hibernate应用SQL查询返回实体类型
Hibernate应用SQL查询返回实体类型 Hibernate使用SQL查询返回实体类型 以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中.Hibernate中,可以自动 ...
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
在Hibernate中如果通过 [java] view plaincopy session.createSQLQuery("select '合计' as name from dual&quo ...
- 使用hibernate原生sql查询,结果集全为1的问题解决
问题如下: String sqlTest ="select summary,summaryno from F_Summary"; List<Map<Object, Ob ...
- Hibernate纯sql查询VO对象封装
hibernate 纯sql查询返回结果集(未关联映射)组装VO的问题//须保证别名字段与Vo字段一致 //引号中为vo对象属性需与sql查询返回字段一致.addScalar("chname ...
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4 系统环境: MySQL5.1 Hibernate3.3 有如下的假定: 实体类 Ques ...
- 使用HIBERNATE的SQL查询并将结果集自动转换成POJO
在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况 ...
- Hibernate原生SQL查询
最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行 ...
- Hibernate之SQL查询
Hibernate支持使用原生的SQL语句进行查询.使用原生的SQL的好处是:可以利用某些数据库的特性(不同的数据库SQL 语法会有所差异), 将原有的使用JDBC作为持久层技术的应用 ,迁移到使用H ...
- Hibernate:SQL查询 addScalar()或addEntity()
Hibernate除了支持HQL查询外,还支持原生SQL查询. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该 ...
随机推荐
- Flask -- 会话
会话session 在不同请求间存储特定用户的信息.它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名.这意味着用户可以查看你 Cookie 的内容,但却不能修改它,除非用户 ...
- 说说final关键字(好像有干货)
在java开发过程中,final是大家常用的关键字,无非就是用来修饰类,方法和变量,来表名类不能被继承,方法不会被覆盖,变量不能被改变,悄悄的说一句,private方法也隐式的final.通过一段时间 ...
- maven依赖本地宝
http://www.mamicode.com/info-detail-169419.html 引用本地的jar包
- js中call方法的使用介绍
js call call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, ...
- VBS中解决路径带空格的三种方法
vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: Set wshell=CreateObject(&qu ...
- Java编程中时区和时间相关的问题
先说一个结论:时间戳是一个和时区无关的东西,在哪里都是一致的!但是转化为字符串之后,就和时区有关系了. 以下为内容: 参考链接:http://m.blog.csdn.net/article/detai ...
- Storm官方帮助手册翻译(上)
Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...
- spring security 3 自定义认证,授权示例
1,建一个web project,并导入所有需要的lib. 2,配置web.xml,使用Spring的机制装载: <?xml version="1.0" encoding=& ...
- 关于video.js
网址:http://www.cnblogs.com/webenh/p/5815741.html
- [code]高精度运算
数组存储整数,模拟手算进行四则运算 阶乘精确值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #includ ...