オブジェクト配列のリストを返すことを宣言しましたList<Object[]>
。各配列は結果の行を表します。また、値のインデックスは、selectステートメントに基づいています。
productList =
(List<Object[]>) session.createSQLQuery("
SELECT User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price " +
"FROM Orders " +
"INNER JOIN User ON User.u_id = Orders.u_id " +
"INNER JOIN Product ON Product.p_id = Orders.p_id " +
"WHERE Product.p_id = '"+p_id +"' " +
"ORDER BY User.username").list();
User、Product、Ordersの3つのテーブルがあります。
USER:
-----+-----------+------------+---------+----------+-----------+
u_id | username | password | contact | email | city |
------+-----------+------------+---------+---------+-----------+
PRODUCT:
+------+----------+--------------+------+--------------+
| p_id | category | listed_price | qty | description |
+------+----------+--------------+------+--------------+
ORDERS:
+------+--------+------+------+-----------+
| o_id | date | u_id | p_Id | order_qty |
+------+--------+------+------+-----------+
以下の順序で、ユーザーテーブルとProductをo_id(ORDERから)とともに内部結合したいと思います。
+-----------+-------+------+------+--------------+
| username | email | p_id | o_id | listed_price |
+-----------+-------+------+------+--------------+
私のActionClass/Viewクラスでは、public List<Object[]> productList;
上記のコントローラークラスからオブジェクトリストにアクセスすることを宣言しています。
public List<Object[]> productList;
public String listAllProduct(){
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
productList = orderDaoFactory.listProduct(Integer.parseInt( request.getParameter("p_id")));
System.out.println("\t"+productList.get(0).toString());
return SUCCESS;
}
私のJSPページでは、このリスト(オブジェクトの配列)productListをIteratorタグとして使用して、その製品を注文したすべての顧客を反復処理しています。
<s:iterator value="productList">
<tr>
<td><h4><s:property value="username"/></h4></td>
<td><h4><s:property value="email"/></h4></td>
<td><h4><s:property value="p_id"/></h4></td>
<td><h4><s:property value="o_id"/></h4></td>
<td><h4><s:property value="listed_price"/></h4></td>
</tr>
</s:iterator>
課題/問題:私の問題は、デバッグ後にエラーが発生しなくても、出力が正常に取得されないことです。オブジェクトJOINを他のオブジェクトに関連付けるためにO/Rマッピングを使用することを考えている空の心。私が間違っているところを教えてください。あなたの提案はかなりあります。