показать детали всех заказов, сделанных клиентом - PullRequest
0 голосов
/ 09 мая 2018

Я занимаюсь разработкой сайта электронной коммерции (Spring MVC, java, mySql, Hibernate) для своего проекта в колледже. У меня есть различные модели, такие как клиент, продукт, заказы, custOrderHistory и т. Д.

Я могу показать всю информацию о клиенте (на странице администратора) и все продукты, которые клиент может просмотреть.

Но проблема, с которой я сталкиваюсь, заключается в том, как показать заказы и историю заказов клиента?

У моей таблицы заказов есть orderId, productId, количество и общая стоимость. но чтобы показать название продукта, я должен использовать productId и получить название продукта из таблицы продуктов.

Понятия не имею, как это сделать.

До сих пор я использовал цикл forest jstl для итерации товаров на странице productList.jsp и отображения их в таблице. Но, как я уже сказал выше, мне нужно получить данные из 3-4 таблиц одновременно, например productName (из таблицы продуктов), productManuacturer (также из таблицы продуктов), ShippingAddress (из таблицы клиентов). И я не уверен, как это сделать.

Редактировать 1: Я задал этот вопрос с чужого компьютера, и тогда у меня не было моего кода. Итак, я даю свой код здесь.

  1. Customer.java

    package com.site.model;
    
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import org.hibernate.validator.constraints.NotEmpty;
    import javax.persistence.*;
    import java.io.Serializable;
    
    @Entity
    public class Customer implements Serializable {
    
    private static final long serialVersionUID = -3280023076408333682L;
    
    @Id
    @GeneratedValue
    private int customerId;
    
    @NotEmpty(message = "  The customer name must not be blank.")
    private String customerName;
    
    @NotEmpty (message = "  The customer email must not be blank.")
    private String customerEmail;
    private String customerPhone;
    
    @NotEmpty (message = "  The username must not be blank.")
    private String username;
    
    @NotEmpty (message = "  The password must not be blank.")
    private String password;
    private boolean enabled;
    
    @OneToOne
    @JoinColumn(name = "billingAddressId")
    private BillingAddress billingAddress;
    
    @OneToOne
    @JoinColumn(name = "shippingAddressId")
    private ShippingAddress shippingAddress;
    
    @OneToOne()
    @JoinColumn(name = "cartId")
    @JsonIgnore
    private Cart cart;
    
    public int getCustomerId() {
        return customerId;
    }
    
    public void setCustomerId(int customerId) {
        this.customerId = customerId;
    }
    
    public String getCustomerName() {
        return customerName;
    }
    
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }
    
    public BillingAddress getBillingAddress() {
        return billingAddress;
    }
    
    public void setBillingAddress(BillingAddress billingAddress) {
        this.billingAddress = billingAddress;
    }
    
    public ShippingAddress getShippingAddress() {
        return shippingAddress;
    }
    
    public void setShippingAddress(ShippingAddress shippingAddress) {
        this.shippingAddress = shippingAddress;
    }
    
    public String getCustomerPhone() {
        return customerPhone;
    }
    
    public void setCustomerPhone(String customerPhone) {
        this.customerPhone = customerPhone;
    }
    
    public String getCustomerEmail() {
        return customerEmail;
    }
    
    public void setCustomerEmail(String customerEmail) {
        this.customerEmail = customerEmail;
    }
    
    public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    
    public String getPassword() {
        return password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    public boolean isEnabled() {
        return enabled;
    }
    
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    
    public Cart getCart() {
        return cart;
    }
    
    public void setCart(Cart cart) {
        this.cart = cart;
    }
    
    }
    
  2. Cart.java

    пакет com.site.model;

    import com.fasterxml.jackson.annotation.JsonIgnore;

    import javax.persistence. *; импорт java.io.Serializable; import java.util.ArrayList; import java.util.List;

    @ Entity Открытый класс Cart реализует Serializable {

    приватный статический финал long serialVersionUID = -2479653100535233857L;

    @ Id @GeneratedValue private int cartId;

    @ OneToMany (mappedBy = "cart", cascade = CascadeType.ALL, fetch = FetchType.EAGER) приватный список cartItems = new ArrayList ();

    @ OneToOne @JoinColumn (name = "customerId") @JsonIgnore частный клиент клиент;

    частный двухместный grandTotal;

    public int getCartId () { вернуть cartId; }

    public void setCartId (int cartId) { this.cartId = cartId; }

    public double getGrandTotal () { вернуть grandTotal; }

    public void setGrandTotal (double grandTotal) { this.grandTotal = grandTotal; }

    публичный список getCartItems () { вернуть cartItems; }

    public void setCartItems (List cartItems) { this.cartItems = cartItems; }

    public Customer getCustomer () { возвратный клиент; }

    public void setCustomer (Customer customer) { this.customer = customer; }

    }

  3. CartItem.java

    package com.site.model;
    

    import com.fasterxml.jackson.annotation.JsonIgnore;

    import javax.persistence. *; импорт java.io.Serializable; import java.util.List;

    @ Entity Открытый класс CartItem реализует Сериализуемый {

    private static final long serialVersionUID = -904360230041854157L;
    
    @Id
    @GeneratedValue
    private int cartItemId;
    
    @ManyToOne
    @JoinColumn(name="cartId")
    @JsonIgnore
    private Cart cart;
    
    @ManyToOne
    @JoinColumn(name = "productId")
    private Product product;
    private int quantity;
    private double totalPrice;
    
    @ManyToMany(cascade=CascadeType.ALL, mappedBy="cartItems")
    @JsonIgnore
    private List<OrderHistory> orderHistoryList;
    
    public int getCartItemId() {
        return cartItemId;
    }
    
    public void setCartItemId(int cartItemId) {
        this.cartItemId = cartItemId;
    }
    
    public Product getProduct() {
        return product;
    }
    
    public void setProduct(Product product) {
        this.product = product;
    }
    
    public int getQuantity() {
        return quantity;
    }
    
    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }
    
    public double getTotalPrice() {
        return totalPrice;
    }
    
    public void setTotalPrice(double totalPrice) {
        this.totalPrice = totalPrice;
    }
    
    public Cart getCart() {
        return cart;
    }
    
    public void setCart(Cart cart) {
        this.cart = cart;
    }
    
    public List<OrderHistory> getOrderHistoryList() {
        return orderHistoryList;
    }
    
    public void setOrderHistoryList(List<OrderHistory> orderHistoryList) {
        this.orderHistoryList = orderHistoryList;
    }
    }
    
  4. CustomerOrder.java

    package com.site.model;
    

    import javax.persistence. *; import java.io.Serializable;

    @ Entity открытый класс CustomerOrder реализует Serializable {

    private static final long serialVersionUID = -3608286390950243118L;
    
    @Id
    @GeneratedValue
    private int customerOrderId;
    
    @OneToOne
    @JoinColumn(name = "cartId")
    private Cart cart;
    
    @OneToOne
    @JoinColumn(name = "customerId")
    private Customer customer;
    
    @OneToOne
    @JoinColumn(name = "billingAddressId")
    private BillingAddress billingAddress;
    
    @OneToOne
    @JoinColumn(name = "shippingAddressId")
    private ShippingAddress shippingAddress;
    
    
    public int getCustomerOrderId() {
        return customerOrderId;
    }
    
    public void setCustomerOrderId(int customerOrderId) {
        this.customerOrderId = customerOrderId;
    }
    
    public Cart getCart() {
        return cart;
    }
    
    public void setCart(Cart cart) {
        this.cart = cart;
    }
    
    public Customer getCustomer() {
        return customer;
    }
    
    public void setCustomer(Customer customer) {
        this.customer = customer;
    }
    
    public BillingAddress getBillingAddress() {
        return billingAddress;
    }
    
    public void setBillingAddress(BillingAddress billingAddress) {
        this.billingAddress = billingAddress;
    }
    
    public ShippingAddress getShippingAddress() {
        return shippingAddress;
    }
    
    public void setShippingAddress(ShippingAddress shippingAddress) {
        this.shippingAddress = shippingAddress;
    }
    
    }
    
  5. OrderHistory.java

    пакет com.site.model;

    import javax.persistence. *; импорт java.io.Serializable; import java.util.ArrayList; import java.util.List;

    @ Entity Открытый класс OrderHistory реализует Сериализуемый {

    private static final long serialVersionUID = 1083533250613139445L;
    
    @Id
    @GeneratedValue
    private int orderHistoryId;
    private int customerId;
    private String customerName;
    private int customerOrderId;
    private int cartId;
    
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "cartItem_orderHistory", joinColumns = @JoinColumn(name = "orderHistoryId"),
            inverseJoinColumns = @JoinColumn
                    (name = "cartItemId"))
    private List<CartItem> cartItems = new ArrayList<CartItem>();
    private double grandTotal;
    private String billingAddress;
    private String shippingAddress;
    
    public int getOrderHistoryId() {
        return orderHistoryId;
    }
    
    public void setOrderHistoryId(int orderHistoryId) {
        this.orderHistoryId = orderHistoryId;
    }
    
    public int getCustomerId() {
        return customerId;
    }
    
    public void setCustomerId(int customerId) {
        this.customerId = customerId;
    }
    
    public String getCustomerName() {
        return customerName;
    }
    
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }
    
    public int getCustomerOrderId() {
        return customerOrderId;
    }
    
    public void setCustomerOrderId(int customerOrderId) {
        this.customerOrderId = customerOrderId;
    }
    
    public int getCartId() {
        return cartId;
    }
    
    public void setCartId(int cartId) {
        this.cartId = cartId;
    }
    
    public List<CartItem> getCartItems() {
        return cartItems;
    }
    
    public void setCartItems(List<CartItem> cartItems) {
        this.cartItems = cartItems;
    }
    
    public double getGrandTotal() {
        return grandTotal;
    }
    
    public void setGrandTotal(double grandTotal) {
        this.grandTotal = grandTotal;
    }
    
    public String getBillingAddress() {
        return billingAddress;
    }
    
    public void setBillingAddress(String billingAddress) {
        this.billingAddress = billingAddress;
    }
    
    public String getShippingAddress() {
        return shippingAddress;
    }
    
    public void setShippingAddress(String shippingAddress) {
        this.shippingAddress = shippingAddress;
    }
    }
    

edit 2: как мне сохранить данные в таблице ustomerorder и таблице истории заказов, а также как показать их на странице jsp?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы должны иметь привычную таблицу в вашей таблице заказов. Так что вы можете получить историю заказов клиента, предоставив customerid.

0 голосов
/ 09 мая 2018

у вас должен быть столбец CustomerId в таблице заказов, чтобы определить, с каким клиентом связан заказ. Просто вставьте в него идентификатор пользователя и выберите имя клиента, сделав соединение с таблицей клиентов.

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