Java 双向字段-自动更新?
如果一侧发生变化,是否可以让双向字段自动更新Java 双向字段-自动更新?,java,jakarta-ee,mapping,Java,Jakarta Ee,Mapping,如果一侧发生变化,是否可以让双向字段自动更新 class Customer { @OneToManycascade=ALL, mappedBy="customer") public list<Order> orders; } class Order { @ManyToOne private Customer customer; } class客户{ @OneToManycascade=ALL,mappedBy=“客户”) 公开名单命令; } 阶
class Customer {
@OneToManycascade=ALL, mappedBy="customer")
public list<Order> orders;
}
class Order {
@ManyToOne
private Customer customer;
}
class客户{
@OneToManycascade=ALL,mappedBy=“客户”)
公开名单命令;
}
阶级秩序{
@许多酮
私人客户;
}
如果我在类Order中设置customer字段,我是否还必须向customer类的orders列表执行添加(Order)?
或者另一方可以自动更新吗
ty我的方法是将订单添加到客户,然后保留客户,这将自动保留订单的“拥有方”
Order newOrder = new Order();
customer.orders.add(newOrder);
order.setCustomer(customer);
customerDao.persistOrMerge(customer);
根据您也使用的实现(JPA、Hibernate等),您可能还需要将客户添加到订单中。但是在大多数实现中,级联应该考虑到这一点。我个人不会依赖于确定实现会为您带来什么,而是会增加双方的利益,并以这种方式坚持下去。我个人也总是首先存储非拥有方。但同样,根据实施情况,这也可能不是必需的 我的方法是将订单添加到客户,然后持久化客户,这将自动持久化订单的“拥有方”
Order newOrder = new Order();
customer.orders.add(newOrder);
order.setCustomer(customer);
customerDao.persistOrMerge(customer);
根据您也使用的实现(JPA、Hibernate等),您可能还需要将客户添加到订单中。但是在大多数实现中,级联应该考虑到这一点。我个人不会依赖于确定实现会为您带来什么,而是会增加双方的利益,并以这种方式坚持下去。我个人也总是首先存储非拥有方。但同样,根据实施情况,这也可能不是必需的 是的,我就是这么说的。我想有一种方法可以避免额外的语句,比如
order.setCustomer(customer)代码>并由JPA/Hibernate自动完成。是的,这就是我所说的。我想有一种方法可以避免额外的语句,比如order.setCustomer(customer)代码>并由JPA/Hibernate自动完成。