Java Spring Data App 不保存子对象

Java Spring Data App doesn't save sub-objects

我正在尝试构建构建服务,该服务使用子对象保存对象,但出现错误。结果对象数据字段已保存,但子对象未保存。

我有下一个对象。主对象为订单,子对象为合作伙伴:

@Getter
@Setter
@Entity
@Table(name = "orders")
public class Order {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int orderId;

    @OneToMany(mappedBy = "order", fetch = FetchType.EAGER,
            cascade = CascadeType.ALL)
    private Set<Partner> partners;
}

@Getter
@Setter
@Entity
@Table(name = "partners")
public class Partner implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "partner_id")
    private int id;

    @ManyToOne(fetch = FetchType.EAGER, optional = false)
    @JoinColumn(name = "order_id", nullable = false)
    private Order order;
}

我使用来自 Spring Jpa 存储库的标准嵌入式方法“保存”:

@Repository
public interface OrdersRepository extends JpaRepository<Order, Integer> {

}

和调用此存储库的服务:

@服务 public class OrdersServiceImpl 实现 OrdersService {

@Autowired
private OrdersRepository repository;

@Override
public Order save(Order order) {
    return repository.save(order);
}

}

有人知道为什么没有保存合作伙伴吗?

非常感谢!

因为关系拥有者是合作伙伴,所以您需要先保存订单。或者您可以将 cascade = CascadeType.PERSIST 放在 private Order order;