【问题标题】:Spring MVC Hibernate Eager Load JSTL c:foreachSpring MVC Hibernate Eager Load JSTL c:foreach
【发布时间】:2015-10-07 18:58:37
【问题描述】:

在显示具有一对多关联的项目列表的列表订单时,我遇到了重复行的问题。订单将根据订单中的商品数量重复,而不是每个订单一次。

这是我的代码... 控制器映射

    // RETURNS A LIST OF ALL ORDERS IN KITCHEN
    @RequestMapping("/orderstatus")
    public String showAddresses(Model model) {
    List<Orders> deliveryKitchen = ordersService.getDeliveryKitchen();
    List<Orders> deliveryOut = ordersService.getDeliveryOut();
    List<Orders> insideKitchen = ordersService.getInsideKitchen();
    List<Orders> insideOut = ordersService.getInsideOut();
    List<Orders> takeoutKitchen = ordersService.getTakeoutKitchen();

    model.addAttribute("deliveryKitchen", deliveryKitchen);
    model.addAttribute("deliveryOut", deliveryOut);
    model.addAttribute("insideKitchen", insideKitchen);
    model.addAttribute("insideOut", insideOut);
    model.addAttribute("takeoutKitchen", takeoutKitchen);

    return "orderstatus";

}

.jsp 的一部分

<div>
Delivery
<table class="orders">
    <tr>
        <td>Order #</td>
        <td>Name</td>
        <td>Phone Number</td>
        <td>Street</td>
        <td>Items</td>
        <td>Total</td>
    </tr>

    <c:forEach var="deliveryKitchen" items="${deliveryKitchen}">
        <tr>
            <td><c:out value="${deliveryKitchen.idorders}"></c:out></td>
            <td><c:out value="${deliveryKitchen.users.name}"></c:out></td>
            <td><c:out value="${deliveryKitchen.users.phoneNo}"></c:out></td>
            <td><c:out value="${deliveryKitchen.addresses.street1}"></c:out>

    <td>
    <c:forEach var="insideItems" items="${deliveryKitchen.orderitem}">

            <c:out value="${insideItems.items.name}"></c:out>

    </c:forEach>    
...


 what the page shows 
Delivery
Order # Name    Phone Number    Street  Items   Total
57  Panikos 9172955593  214-04 33rd ave Healthy Wrap Meatlover's Omlette           18.4 Out for Delivery    Edit
57  Panikos 9172955593  214-04 33rd ave Healthy Wrap Meatlover's Omlette    18.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two    Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids)  Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit
59  Jerry   7894578978  2145 fulton Belgian Style Waffle Chicken Salad Two Eggs Tuna Salad Sandwich Chicken Noodle Baja Chicken Macaroni and Cheese (kids) Western Omlette  53.4    Out for Delivery    Edit

    // GET ORDERS BY STATUS
@SuppressWarnings("unchecked")
public List<Orders> getDeliveryKitchen() {
    Criteria crit = session().createCriteria(Orders.class);
    crit.createCriteria("status", "c");
    crit.add(Restrictions.eq("c.idstatus", 2));

    return crit.list();
}

【问题讨论】:

  • 请展示 DAO 代码或至少展示您如何尝试检索带有 LineItems 的订单(可能是 HQL 或 Criteria)
  • 已更新。感谢观看

标签: hibernate spring-mvc jstl


【解决方案1】:

试试这个:

Criteria crit = session().createCriteria(Orders.class);
crit.createCriteria("status", "c");
crit.add(Restrictions.eq("c.idstatus", 2));
crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2011-07-09
    • 2020-08-23
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多