Eğer bir sorgu sonucu entity listesine karşılık gelmiyor ise yeni bir class yaratıp select sorgusunda bu class'ı kullanabilirsiniz. Örneğin select memberid,count(*) from message group by memberid gibi bir sorgu sonucu bir id ve bir sayıdan oluşan bir liste dönmektedir. Sonuç bir entity listesi olmadığı için aşağıdaki gibi bir class yaratabilirsiniz :
class MessageCount{
Long memberId;
Long count;
public MessageCount(Long memberId,Long count){
setMemberId(memberId);
setCount(count);
}
// set ve get aşağıda....
...
}
Ve select sorgusunu aşağıdaki gibi yazabilirsiniz :
select new MessageCount(m.memberid,count(m.memberid)) from Message m group by m.memberid;
Ve bu sorgu sonucunu aşağıdaki gibi alabilirsiniz :
String query="select new MessageCount(m.memberid,
count(m.memberid)) from Message m group by m.memberid;";
Query query=getEntityManager().createQuery(query);
List list=query.getResultList();