Hibernate取查询结果集

本文介绍了使用Hibernate进行数据库查询的多种方式,包括返回元组的查询、返回对象的查询以及获取标量结果的查询。通过示例代码展示了如何实现这些查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate取查询结果集

 

返回元组(tuples)的查询

 

(译注:元组(tuples)指一条结果行包含多个对象) Hibernate查询有时返回元组(tuples),每个元组(tuples)以数组的形式返回:

Iterator kittensAndMothers = sess.createQuery(
"select kitten, mother from Cat kitten join kitten.mother mother")
.list()
.iterator();

while ( kittensAndMothers.hasNext() ) {
Object[] tuple = (Object[]) kittensAndMothers.next();
Cat kitten = tuple[0];
Cat mother = tuple[1];
....
}

返回对象的查询

//positional parameter
Query q = sess.createQuery("from DomesticCat cat where cat.name = ?");
q.setString(0, "Izi");
Cat cat = q.list().get(0);

标量(Scalar)结果

查询可在select从句中指定类的属性,甚至可以调用SQL统计(aggregate)函数。 属性或统计结果被认定为"标量(Scalar)"的结果(而不是持久(persistent state)的实体)。

Iterator results = sess.createQuery( "select cat.color, min(cat.birthdate), count(cat) from Cat cat " + "group by cat.color") .list() .iterator();
 while ( results.hasNext() ) {
    Object[] row = results.next();
    Color type = (Color) row[0];
     Date oldest = (Date) row[1];
     Integer count = (Integer) row[2];
 .....
 }


Iterator cats = q.iterate();
Query q = s.createQuery(select new Personbean(id,name,sex) from person);
Iterator it = q.list() .iterator();
while(it.hasNext()){
Personbean bean = (Personbean)it.nex();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值