我是新來的休眠。我需要了解以下問題:如何使用休眠<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