当类与类之间建立了关联,就可以方便地从一个对象导航到另一个或者一组与它关联的对象。例如,对于给定的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<