0

以下のSQLステートメントがあります

select items.id, ((sum(today.view_cnt) - sum(yesterday.view_cnt)) as point
from items
left outer join stats yesterday 
on items.id = yesterday.items_id
and yesterday.base_date>='2013-05-29' and yesterday.base_date < '2013-05-30'
left outer join stats today   
on items.id = today.items_id

and today.base_date >='2013-05-29' and today.base_date < '2013-05-30'
group by items.id
having sum(yesterday.view_cnt) >150
order by point desc

これをHQLステートメントに変更したい。HQL に変更する方法がわからないものもあります。

Criteria criteria = getSession().createCriteria(Stats.class, "seriesStats");

Criteria itemCriteria = criteria.createCriteria("items", "items", RIGHT_OUTER_JOIN, Restrictions.eq("items.id", ???? ));   ----> 

// 以下のように SQL クエリを作成したい

criteria.setProjection(Projections
            .projectionList()
            .add(Projections.???????)  --> 

             ((sum(today.view_cnt) - sum(yesterday.view_cnt)) as point


            .add(Projections.groupProperty("items.id")));

それ以外の場合、「基準」の代わりに「クエリ」を使用する必要がありますか? SQL ステートメントを Criteria または Query にどのように変更すればよいのでしょうか。
私にお知らせください。ありがとう。

4

1 に答える 1

0

session.createSQLQuery("native sql query")で純粋なネイティブ SQL を起動するために使用できますhibernate

参考のため

リンク1

リンク2

于 2013-05-31T04:02:26.203 に答える