把customer里面的内容注释掉。
在customer里面添加orders , 再添加set和get方法。
运行如下代码:
保存成功了。
//单向 1-n 关联关系执行保存时, 一定会多出 UPDATE 语句.
//因为 n 的一端在插入时不会同时插入外键列.
@Test
public void testOneToManyPersist(){
Customer customer = new Customer();
customer.setAge(18);
customer.setBirth(new Date());
customer.setCreatedTime(new Date());
customer.setEmail("mm@163.com");
customer.setLastName("MM");
Order order1 = new Order();
order1.setOrderName("O-MM-1");
Order order2 = new Order();
order2.setOrderName("O-MM-2");
//建立关联关系
customer.getOrders().add(order1);
customer.getOrders().add(order2);
order1.setCustomer(customer);
order2.setCustomer(customer);
//执行保存操作
entityManager.persist(customer);
entityManager.persist(order1);
entityManager.persist(order2);
}
可以使用 @OneToMany 的 fetch 属性来修改默认的加载策略
2 级联删除
@OneToMany 的 cascade 属性来修改默认的删除策略.
再删除1的时候,把多的那端也删除掉。
运行过后,发现删除成功。
3 修改值
运行过后,成功。