采购请购单
在用Hibernate查询数据时,只有 "from 实体对象" 才能得到对象,只查询其中几个属性时,可用类似JDBC里的结果集进行查询,把查询后的数据setter在实体对象里。主要用了Hibernate里的ScrollableResults,由Query的scroll()返回。
在用Hibernet进行查询时,当只需要得到对象的几个属性时,查出来的结果是属性值,不是对象,要取得这些属性值,必须把它们转换成object数组,然后再取出,虽然这样能取出来,但是你并不知道这些属性值是属于哪个对象的,我想得到的是对象,就像在JDBC里的ResultSet(结果集)一样,取得属性值然后再setter到对象里,这样就得到了对象。
Code:
import org.hibernate.ScrollableResults; //要导入的包
/**
* 得到不重复的请购单列表
*/
public List<StockRequisition> getAllBillList(){
Session session=HibernateSessionFactory.getSession();
ScrollableResults srs=null;
String hql="select distinct s.billNumber,s.billDate,s.billState,s.department from StockRequisition as s";
List<StockRequisition> list=new ArrayList<StockRequisition>();
try{
Query q=session.createQuery(hql);
srs=q.scroll();
while(srs.next()){
StockRequisition stock=new StockRequisition();
stock.setBillNumber(srs.getString(0));
stock.setBillDate(srs.getDate(1));
stock.setBillState(srs.getString(2));
stock.setDepartment((Department)srs.get(3));
list.add(stock);
}
}catch(Exception e){
e.printStackTrace();
}finally{
srs.close();
session.close();
}
return list;
}
在这里边主要是用了ScrollableResults,类似JDBC里的结果集,它由Query的scroll()得到。
ScrollableResults的一个小例子【链表查询】
最新推荐文章于 2022-05-06 23:02:33 发布