Hibernate OneToMany Список Перезагрузить - PullRequest
0 голосов
/ 01 июня 2018

Я использую JSP / Servlet и Hibernate для создания веб-сайтов.

У меня есть 2 класса Product и ProductItem, я могу подсчитать, сколько ProductItem каждого Product, используя основной тег JSTL $ {fn: length (pr.productItemList)}.проблема заключается в том, что когда я удаляю или вставляю ProductItem, список не перезагружается, поэтому результат подсчета не изменяется, но когда я очищаю и строю проект, результат изменяется.

Так что любая идея перезагрузить список, пожалуйста, помогите.

вот мой Класс Продукта

public class Product implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "ProductID")
    private Integer productID;
    @Size(max = 100)
    @Column(name = "ProductName")
    private String productName;
    @Size(max = 1000)
    @Column(name = "ProductInfo")
    private String productInfo;
    @Column(name = "Price")
    private Float price;
    @JoinColumn(name = "BrandID", referencedColumnName = "BrandID")
    @ManyToOne
    private Brand brandID;
    @JoinColumn(name = "CategoryID", referencedColumnName = "CategoryID")
    @ManyToOne
    private Category categoryID;
    @OneToMany(mappedBy = "productID" , fetch = FetchType.EAGER)
    private List<ProductItem> productItemList;

здесь мой класс ProductItem

public class ProductItem implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "ProductItemID")
    private String productItemID;
    @Column(name = "Deleted")
    private Boolean deleted;
    @JoinColumn(name = "ProductID", referencedColumnName = "ProductID")
    @ManyToOne(fetch=FetchType.EAGER)
    private Product productID;

вот моя страница product.jsp

<table border="1" cellspacing="0" cellpadding="5">
            <caption><h1>List of Product</h1></caption>
            <thead>
                <tr>
                    <th>Product ID</th>
                    <th>Product Amount</th>
                    <th>Product Name</th>
                    <th>Product price</th>
                    <th>Category Name</th>                    
                    <th>Brand Name</th>    

                </tr>
            </thead>
    <c:forEach items="${list}" var="pr">
                <tr>
                    <td>${pr.productID}</td>
                    <td>${fn:length(pr.productItemList)}</td>                    
                    <td>${pr.productName}</td>                       
                    <td>${pr.price}</td>                        
                    <td>${pr.categoryID.categoryName}</td>                        
                    <td>${pr.brandID.brandName}</td> 
                   
                 </tr>
    </c:forEach>

</tbody>
</table> 

и мой ProductListServlet

public class ProductListServlet extends HttpServlet {


    @EJB
    private ProductFacadeLocal productFacade;
    
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        request.setAttribute("list", productFacade.findAll()); 
        request.getRequestDispatcher("Product.jsp").forward(request, response);

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...