我在我的web應用程序中使用JPA,當我不想DB返回所有的對象我這樣做:我的JPA查詢方法是正確的嗎?
Query query = super.entityManager.createQuery("select b.id, b.buyName from Buy b where b.id in (:list)");
query.setParameter("list", buyIds);
List<Object[]> result = query.getResultList();
List<Buy> retval = new ArrayList<Buy>();
for (Object[] item : result) {
Buy buy = new Buy();
buy.setId((Long)item[0]);
buy.setBuyName((String)item[1]);
retval.add(buy);
}
return retval;
也就是說,查詢我想要的字段,然後手動創建一個列表期望的對象並填充它。 這是一個很好的做法嗎?感覺這樣做有更好的方法。
謝謝。
心不是說我在做什麼,但沒有創建一個新的POJO? –
您可以爲同一個類設置多個映射 - 但註釋配置將不起作用 –
@Noam - 是的,您正在做類似的事情,但不是相同的。您正在明確構建您的POJO(忽略不需要填充的字段),而不是讓JPA爲您做。 – Saket