Skip to content

Commit

Permalink
change from many to many to one to many for cart product
Browse files Browse the repository at this point in the history
  • Loading branch information
Bank authored and Bank committed Mar 23, 2024
1 parent 7d7588a commit 9c4bb25
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 17 deletions.
15 changes: 5 additions & 10 deletions kbazaar/src/main/java/com/kampus/kbazaar/cart/Cart.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.kampus.kbazaar.cart;

import com.kampus.kbazaar.product.Product;
import com.kampus.kbazaar.promotion.Promotion;
import com.kampus.kbazaar.shopper.Shopper;
import jakarta.persistence.*;
Expand All @@ -21,12 +20,8 @@ public class Cart {
@Column(name = "id")
private Long id;

@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(
name = "cart_product",
joinColumns = @JoinColumn(name = "cart_id"),
inverseJoinColumns = @JoinColumn(name = "product_id"))
private Set<Product> products;
@OneToMany(mappedBy = "cart", cascade = CascadeType.ALL)
private Set<CartProduct> products;

@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(
Expand All @@ -39,9 +34,9 @@ public class Cart {
@JoinColumn(name = "shopper_id", referencedColumnName = "id")
private Shopper shopper;

public Cart addProduct(Product product) {
this.products.add(product);
product.getCarts().add(this);
public Cart addPromotion(Promotion promotion) {
this.promotions.add(promotion);
promotion.getCarts().add(this);
return this;
}
}
27 changes: 27 additions & 0 deletions kbazaar/src/main/java/com/kampus/kbazaar/cart/CartProduct.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.kampus.kbazaar.cart;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CartProduct {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "product_id")
private Long productId;

@Column(name = "quantity")
private Integer quantity;

@ManyToOne
@JoinColumn(name = "cart_id")
private Cart cart;
}
7 changes: 0 additions & 7 deletions kbazaar/src/main/java/com/kampus/kbazaar/product/Product.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.kampus.kbazaar.product;

import com.kampus.kbazaar.cart.Cart;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import jakarta.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -27,11 +25,6 @@ public class Product {
@Column(name = "id")
private Long id;

@ManyToMany(
cascade = {CascadeType.ALL},
mappedBy = "products")
private Set<Cart> carts;

@NotBlank
@Size(max = 255)
@Column(name = "name", nullable = false, length = 255)
Expand Down

0 comments on commit 9c4bb25

Please sign in to comment.