我尝试使用jax-rs将JPA用作REST服务。我试图从实体中获取所有值。在db中只有一个对象,但是这个实体与其他实体有一对多的关系。一切都很顺利,但是当我在任何RESTclient中看到响应时(我使用POSTman)我多次得到相同的对象。
@GET
@Path("/by")
@Produces(MediaType.APPLICATION_JSON)
public List getAll() {
Query q = entityManager.createQuery("select u from Entity u");
List<A> x = q.getResultList();
List<A> fg = new ArrayList<A>();
for (int i = 0; i < x.size(); i++) {
A l = (A) x.get(i);
l.getMonto();
fg.add(l);
}
return fg;
}
答案 0 :(得分:1)
Query q = entityManager.createQuery("select u from PaymentPlan u");
PaymentPlan pp = (PaymentPlan)q.getSingleResult();
这将返回单个结果。 getSingleResult()执行返回单个无类型结果的SELECT查询。
有关详情,请参阅此链接 - http://www.objectdb.com/java/jpa/query/execute
答案 1 :(得分:0)
在没有获得目标结果之前,请不要清除EntityManager
。根据您的查询,查询将从PaymentPlan
表中检索所有记录。
Query q = entityManager.createQuery("select u from PaymentPlan u");
PaymentPlan paymentPlan = (PaymentPlan)q.getSingleResult();
或
Query q = entityManager.createQuery("select u from PaymentPlan u");
List<PaymentPlan> paymentPlanList = q.getResultList();
PaymentPlan paymentPlan = paymentPlanList.get(0);