我正在使用 Spring Boot 和 Spring Data JPA 创建一个简单的 Web 商店作为大型应用程序的一部分。我有许多商品(我的库存),订单将包含这些商品的集合(以及运输信息等)。
库存中的商品可能会更新 - 例如,更改价格。我希望能够在没有版本控制等开销的情况下执行此操作。但是,当我查找过去的订单时,我想获取当时使用的信息。
Spring Data JPA 中是否有一种方法可以在我的订单中嵌入项目的副本,而不是链接到项目对象?
我的课程如下:
ShopItem.java
@Entity
public class ShopItem {
@Id
@GeneratedValue
private Long id;
private String name;
private String description;
private int price;
private int stock;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
public void reduceStock(int by){
this.stock = this.stock - by;
}
}
ShopOrder.java
@Entity
public class ShopOrder {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private Member member;
private boolean postage;
@OneToMany
private List<ShopOrderItem> items;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Member getMember(){
return member;
}
public void setMember(Member member) {
this.member = member;
}
public boolean getPostage() {
return postage;
}
public void setPostage(boolean postage) {
this.postage = postage;
}
public List<ShopOrderItem> getItems() {
return items;
}
public void setItems(List<ShopOrderItem> items) {
this.items = items;
}
}
繁星coding
相关分类