我创建了名为 Reservations 的简单表,该表具有以下列:ID、DUE_DATE、PRODUCTS_PAID、RESERVATION_NAME、SALE、TOTAL_SELL_PRICE 和 CUSTOMER_ID。
现在我想要做的是我想遍历这个给定 CUSTOMER_ID 值的表。这是我按 CUSTOMER_ID 收集所有这些列数据的方法:
public Collection<Reservations> findReservation(int cuID) {
EntityManager em = getEntityManager();
Query q = em.createQuery("SELECT r FROM Reservations r WHERE r.customerData.id = :cID");
q.setParameter("cID", cuID);
List results = q.getResultList();
return results;
}
我的问题是,每当我运行迭代循环时,它都不会停止迭代,而是继续迭代。我在该表中只有两行数据。你能告诉我为什么这个迭代会继续并且不会停止吗?显然,我只想根据给定的 CUSTOMER_ID 值迭代该表内的所有数据。
我已经尝试过 for 循环,for each 循环和 while 循环,但它们都不起作用。这一定与我的代码有关。这是我测试过的一个 while 循环,但它不会像其他循环一样停止迭代:
for(Iterator itr2 = rd.findReservation(cuID).iterator(); itr2.hasNext();){
rModel.addRow(Arrays.asList(rd.findReservation(cuID).iterator().next().getId(),
rd.findReservation(cuID).iterator().next().getReservationName(),
rd.findReservation(cuID).iterator().next().getCustomerData().getCustomerName(),
rd.findReservation(cuID).iterator().next().getCustomerData().getCustomerType(),
rd.findReservation(cuID).iterator().next().getDueDate(),
rd.findReservation(cuID).iterator().next().getTotalSellPrice(),
rd.findReservation(cuID).iterator().next().getSale(),
rd.findReservation(cuID).iterator().next().getProductsPaid(),
"Print"));
}
如果您想知道什么是 cuID,它只是一个从表列接收的整数值。此值为客户 ID。它运作良好。所以它不应该影响代码。感谢所有帮助:)