孙卫琴的《精通JPA与Hibernate》的读书笔记:映射一对多双向关联关系

本文是关于孙卫琴《精通JPA与Hibernate》的读书笔记,主要探讨了如何在Java中映射一对多双向关联关系,强调了Hibernate对集合属性的要求,以及在主动方与被动方角色中的关联维护,包括数据库中的外键关系和对象状态的同步更新。
摘要由CSDN通过智能技术生成

当类与类之间建立了关联,就可以方便地从一个对象导航到另一个或者一组与它关联的对象。例如,对于给定的Order对象,如果想获得与它关联的Customer对象,只要调用如下方法:

//从Order对象导航到关联的Customer对象
Customer customer=order.getCustomer();

在Order类中,用@ManyToOne注解映射customer属性:

  @ManyToOne(targetEntity =Customer.class)
  @JoinColumn(name="CUSTOMER_ID")
  private Customer customer;

对于给定的客户,查询该客户的所有订单,只需要调用customer.getOrders()方法。

Hibernate要求在持久化类中定义集合类属性时,必须把属性声明为接口类型,如java.util.Set、java.util.Map和java.util.List。声明为接口可以提高持久化类的透明性,当Hibernate调用setOrders(Set orders)方法时,传递的参数是Hibernate自定义的实现该接口的类的实例。如果把orders声明为java.util.HashSet类型(它是java.util.Set接口的一个实现类),就强迫Hibernate只能把HashSet类的实例传给setOrders()方法。

在定义Customer类的orders集合属性时,通常把它初始化为集合实现类的一个实例,例如:

private Set&l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术集锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值