簡體   English   中英

休眠條件內聯接以選擇

[英]Hibernate criteria Inner join to select

我必須將下一個表達式轉換為休眠條件api:

select * from games gs
INNER JOIN (select gg.ID, gg.CODE, max(gg.DATE) max_date from games gg 
where gg.player_id = 1 group by gg.ID, gg.CODE) ss
 on gs.CODE = ss.CODE
 and gs.ID = ss.ID
 and gs.DATE = ss.max_date
 and gs.player_id = 1

我該怎么做? 我能夠分別創建內部和外部條件,但不知道如何將它們加入:

    DetachedCriteria innerCriteria = DetachedCriteria.forClass(Games.class, "gg");
    innerCriteria.add(Restrictions.eq("playerId", 1));
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.groupProperty("id"));
    projectionList.add(Projections.groupProperty("code"));
    projectionList.add(Projections.max("date"));
    innerCriteria.setProjection(projectionList);

...

    Criteria criteria = getSession().createCriteria(Games.class, "gs");
    criteria.add(Restrictions.eq("playerId", 1));
    criteria.setProjection(Projections.id());
    criteria.list();

Hibernate在from子句中不支持子查詢。 Hibernate 4.3文檔中

請注意,HQL子查詢只能在select或where子句中發生。

有一個待處理的功能請求

您必須重寫查詢以避免這種情況,或者使用本機查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM