我正在尋找基於主鍵在我的數據庫中選擇多個項目。如何使用JPA的多個SELECT查詢
所以如果我有我想要從數據庫中選擇imagename和refName的名稱。
我發現這裏http://www.objectdb.com/java/jpa/query/jpql/select
TypedQuery<Object[]> query = em.createQuery(
"SELECT c.name, c.capital.name FROM Country AS c", Object[].class);
List<Object[]> results = query.getResultList();
for (Object[] result : results) {
System.out.println("Country: " + result[0] + ", Capital: " + result[1]);
}
一些東西,不工作,和別人就會覺得代碼是非常錯誤的,所以我很好奇我怎麼會正好做到這一點?
謝謝大家!
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of i.name that does not exist in the query string SELECT i.name, i.refName, i.imageName FROM Items AS i.
at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:928) at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:928)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:593)
at uploader.AdminControl.fileCreate(AdminControl.java:745)
at uploader.AdminControl.upload(AdminControl.java:660)
... 57 more
..
TypedQuery<Object[]> q = em2.createQuery("SELECT i.name, i.refName, i.imageName FROM Items AS i",Object[].class);
q.setParameter("name", plan.getFace()[i].name);
System.out.println(q);
List<Object[]> results = q.getResultList();
for (Object[] result : results)
{
bw.write(result[1].toString());
bw.write(result[2].toString());
System.out.println("result:" + result[1].toString() + "and" + result[2].toString());
}
那麼,爲什麼您的查詢提'refName',如果這應該基於名稱(「如果我有名字」)爲什麼沒有'WHERE'子句? – 2014-10-09 22:57:14
這是上面鏈接的例子...對不起。 我只是顯示這是我給的,這是正確的使用? 已更新爲顯示錯誤。 – XaolingBao 2014-10-09 23:02:25
給我們真實的代碼。看起來你嘗試從Items類POJO獲得名字。項目聽起來像多個項目... – bigGuy 2014-10-09 23:08:14