当前位置: 代码迷 >> SQL >> SQLQuery实施原生SQL得到VO集合
  详细解决方案

SQLQuery实施原生SQL得到VO集合

热度:91   发布时间:2016-05-05 13:56:17.0
SQLQuery执行原生SQL得到VO集合

在查询多个表时,而输出的内容又是零散来自于不同的表,用sql语句的情况下还要返回的是一个VO封装的对象。

表:

CREATE TABLE tab1(     id int primary key,     name varchar,);CREATE TABLE tab2(     id int primary key,     money BigDecimal,     descri varchar,);

?VO:

public class TestVo{     private String name;     private String descript;     private String money ;  ......getter....setter}

?

SQL: 别名要对应TestVo的属性名,还要getter,setter方法

SELECT  t1.name name, t2.descri descript , t2.money  money FROM tab1 t1 , tab2 t2WHERE t1.id = t2.id

? SQLQuery:

SQLQuery q = this.getSession().createSQLQuery(sql)        .addScalar("name",Hibernate.STRING)        .addScalar("descript",Hibernate.STRING)        .addScalar("money ",Hibernate.BIG_DECIMAL);List<TestVo> tvs = (List<TestVo>)q        .setResultTransformer(Transformers.aliasToBean(TestVo.class))        .list();

??http://android1.blogcn.com/