hibernate 是否会自动设置@OneToMany @ManyToOne 关系中的引用?

Does hibernate set back reference in @OneToMany @ManyToOne relationship automatically?

我有包含 orderItems 列表的订单实体。

@OneToMany(mappedBy ="order")
List<OrderItem> orderItems;

OrderItem 已向后引用订单

@ManyToOne
Order order;

当我保存 Order 时,我应该在 OrderItem 实体中手动设置反向引用吗? 像这样

OrderItem orderItem1 = new OrderItem( //constructor );
OrderItem orderItem2 = new OrderItem( //constructor );
List orderItems = Arrays.asList(orderItem1, orderItem2);
Order order = new Order( orderItems);

orderItems.forEach(orderItem -> orderItem.setOrder(order); // like this?

Hibernate 和 Spring 数据 jpa 是否自动设置?

对于创建和更新案例,他们不会帮你自动设置,你必须自己配置关系。

这里的mappedBy定义是用Order.orderItems还是OrderItem.order为它们之间link对应的DB列提供值。 (即 order_item table 中的 order_id 列)。

如果定义了 mappedByOrderItem.order 将用于为关系提供值。否则,将使用 Order.orderItems

对于加载情况,它会帮你自动设置。