使用JPA 2.0和EclipseLink的IMPL
對於第一個問題:自定義對象(無表對象)的列表:
答案:創建一個自定義模式,並使用@實體和@Id
@Entity
public class QueryModelDTO implements Serializable{
@Id
private Integer categoryId;
private int count;
---gets and sets
}
創建查詢並執行
QueryModelDTO qm = (QueryModelDTO) em.createQuery(
"SELECT p.category.id as categoryId, count(p.id) as count FROM Product p
left join p.category c WHERE p.seller.id=:id
GROUP BY c.id",QueryModelDTO.class)
.setParameter("id", id).getSingleResult();
對於第二:如何看地圖上的響應
答案:使用QueryHints和ResultTypes(這是對@DannyMo回答一個變體)
Query q = em.createNativeQuery("SELECT * FROM Foo f");
q.setHint(QueryHints.RESULT_TYPE, ResultType.Map);
List<Map> lm = q.getResultList();
for (Map map : lm) {
for (Object entry : map.entrySet()) {
Map.Entry<DatabaseField, Object> e = (Map.Entry<DatabaseField, Object>) entry;
DatabaseField key = e.getKey();
Object value = e.getValue();
log.debug(key+"="+value);
}
}
我希望這可以幫助
我推薦看看[這個答案](http://stackoverflow.com/a/12702437/1211174)。這個答案有兩個例子1.使用元組2.使用類和泛型 – oak