在平时开发中Hibernate提供的hql基本能够满足我们的日常需求。但是在有些特殊的情况下,还是需要使用原生的
就像在这次的项目中,因为表结构要变化,有个新的需求:
要从一个表中查询极个别的字段并且还有几个是求多条数据的和的,之前一直在使用
原对象及表结构是这样的:
@Entity @Table(name="T_BILL_ACCT_ITEM") @NamedQuery(name="TBillAcctItem.findAll", query="SELECT t FROM TBillAcctItem t") public class TBillAcctItem implements Serializable { private static final但是我现在需要查询出来的信息是这样的一个pojo类:
public class ProductBillInfo implements Serializable{ private static final
因为
大概的使用过程:
StringBuffer b = new StringBuffer(); //... 省略SQL拼接代码 String
下面是我用到的查询pojo的方法中的实现:
@SuppressWarnings("unchecked") public List findByAcctIdAndCycle1(
需要说明的一点是
query.addScalar("deviceId",Hibernate.STRING); ,老版本的使用的数据的类型都是 org.hibernate.type包下面的,
新版本的是在:org.
并且在
public static void main(String[] args) { List c = new ArrayList(); c.add("1");c.add("2");c.add("3"); StringBuffer bf = new StringBuffer(); for(String id : c){ if(bf.toString().equals("")){ bf.append("'"+id+"'"); } else{ bf.append(","+"'"+id+"'"); } } System.out.println(bf.toString()); }打印结果是: '1','2','3'
使用StringBuffer拼接到原生的
posted on 2015-08-12 09:41 林的 阅读(575) 评论(0) 编辑 收藏 所属分类: hibernate