select id,name,amount,sort
from
(select id,name,amount,sort,gift_id,count(gift_id)
from
(select * from t_lpw_gift g join t_lpw_dianxin_gift d on g.id=d.gift_id)
group by gift_id,id,name,amount,sort order by count(gift_id) desc)
where rownum <=5;
как использовать jpa createNativeQuery для выбора, база данных - oracle
таблица:
SQL> desc t_lpw_gift;
Name Type Nullable Default Comments
------ ------------ -------- ------- --------
ID INTEGER
NAME VARCHAR2(32)
PRICE NUMBER
AMOUNT INTEGER
SORT VARCHAR2(32) Y
SQL> desc t_lpw_dianxin_gift;
Name Type Nullable Default Comments
----------- ------- -------- ------- --------
GIFT_ID INTEGER
DIANXIN_ID INTEGER
GIFT_NUMBER INTEGER Y
return return Entity - t_lpw_gift
public List<Gift> getHotGifts(int topHotGiftsNum) {
String sql = "select id,name,amount,sort from (select id,name,amount,sort,gift_id,count(gift_id) from (select * from t_lpw_gift g join t_lpw_dianxin_gift d on g.id=d.gift_id) group by gift_id,id,name,amount,sort order by count(gift_id) desc) where rownum <= :topHotGiftsNum";
return (List<Gift>)em.createNativeQuery(sql,Gift.class).setParameter("topHotGiftsNum", topHotGiftsNum).getResultList();
}
18: 55: 11 473 ПРЕДУПРЕЖДЕНИЕ [org.hibernate.util.JDBCExceptionReporter] Ошибка SQL: 17006, SQLState: 99999 18: 55: 12 992 ОШИБКА [org.hibernate.util.JDBCExceptionReporter] 列 名 无效 ()