Chciałbym wysłać do kontrolera user id i liste itemCart, a w bazie danych itemCart id i shopOrder id wygeneruje się samo.
package com.example.webshopback.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.*;
@Entity
@Data
public class ItemCart {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn
private Product product;
private int quantity;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn
@JsonProperty("order")
private ShopOrder shopOrder;
@Transient
public double getTotalPrice() {
return getProduct().getPrice() * getQuantity();
}
}
package com.example.webshopback.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Data
public class ShopOrder {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@CreationTimestamp
private LocalDateTime createDateTime;
@UpdateTimestamp
private LocalDateTime updateDateTime;
@ManyToOne
@JoinColumn
private User user;
@JsonIgnore
@OneToMany(mappedBy = "shopOrder", cascade = CascadeType.ALL,orphanRemoval = true)
private List<ItemCart> itemCarts;
@Transient
public Double getGrandTotalPrice() {
double sum = 0D;
List<ItemCart> itemCarts = getItemCarts();
if (itemCarts == null) {
return 0.0;
} else
for (ItemCart op : itemCarts) {
sum += op.getTotalPrice();
}
return sum;
}
}