我是新来的休眠。我需要了解以下问题:如何使用休眠<subselect>:
(1)hibernate映射中的子选择是什么?
(2)如何在hbm文件中映射子查询?
(3)如果我使用subselect检索值,那么如何获取java Action类中的检索值。
我是新来的休眠。我需要了解以下问题:如何使用休眠<subselect>:
(1)hibernate映射中的子选择是什么?
(2)如何在hbm文件中映射子查询?
(3)如果我使用subselect检索值,那么如何获取java Action类中的检索值。
实际上,您不需要为子查询建模,您可以创建使用它们的查询。检查:(:从上面的链接例如编辑)
String hql = "from Cat as fatcat "+
"where fatcat.weight > ("+
" select avg(cat.weight) from DomesticCat cat "+
")";
List fatcats = session.createQuery(hql);
subselect
元件被用来定义一个只读/不可变的实体,其是基于http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-subqueries 关于任意本地查询的结果。
从相同的源,一个简单地使用一个subselect
元件class
代替的table
属性内,然后使用在查询作为属性映射列名中定义的列名。 (下面是从第5.1.3节逐字)
<class name="Summary">
<subselect>
select item.name, max(bid.amount), count(*)
from item
join bid on bid.item_id = item.id
group by item.name
</subselect>
<synchronize table="item"/>
<synchronize table="bid"/>
<id name="name"/>
...
</class>
创建使用列从subselect
元素查询一个映射后,你应该能够访问属性就像你的任何其他实体。
能否请你举个例子...... – Mohan 2011-05-23 12:28:22
检查编辑。 – 2011-05-23 13:00:12