【发布时间】:2021-09-22 20:53:48
【问题描述】:
我的父类
@Entity
public class Trailer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = “trailer_id", nullable = false)
private Long trailerId;
@OneToMany(mappedBy = “trailer”,cascade = CascadeType.ALL,fetch = FetchType.LAZY)
private Set<Item> items;
}
儿童班
@Entity
public class Item {
@Id
@Column(name = “upc”, nullable = false)
private Long upc;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "trailer_id", referencedColumnName = "trailer_id")
private Trailer trailer;
}
一个预告片可以有多个独特的物品,但同一个预告片以后可能会带来不同的独特物品集。
服务类
public void addOrderToDB() {
List<Trailer> trailer = new ArrayList<>();
List<Item> items = new ArrayList<>();
trailer = Trailer.builder().build();
Item item1 = Item.builder().setTrailer(trailer).build();
Item item2 = Item.builder().setTrailer(trailer).build();
items.add(item1)
items.add(item2)
ItemRepository.saveAll(items);
}
我为什么要从多方面进行储蓄: 因为这里的唯一键是upc。
在我插入项目时,它正在为与同一对象的每个项目条目对应的预告片插入新条目。
预期输出:
Trailer table
trailer_id
1
Item table
trailer_id upc
1 001
1 002
实际输出:
Trailer table
trailer_id
1
2
Item table
trailer_id upc
2 001
2 002
【问题讨论】:
标签: java spring-data-jpa hibernate-mapping