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;
}
ここでの問題は、反復ループを実行するたびに反復が停止せず、反復が継続することです。そのテーブルには 2 行のデータしかありません。この繰り返しが続き、止まらない理由を教えていただけますか? 明らかに、指定された CUSTOMER_ID 値に基づいて、そのテーブル内のすべてのデータを反復したいだけです。
forループ、for eachループ、whileループを試しましたが、どれも機能しません。それは私のコードと関係があるに違いありません。これは私がテストした while ループの 1 つですが、残りのループのように反復を停止しません。
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 です。それはうまくいきます。したがって、コードに影響を与えるべきではありません。すべての助けに感謝します:)