hibernate - 关系的定义 - 为什么?

时间:2012-06-12 04:37:15

标签: sql hibernate

使用hibernate连接表的重点是什么,例如:

  • @OneToMany
  • @ManyToOne
  • @ManyToMany
  • @JoinColumn

如果在数据库级别定义了关系?

1 个答案:

答案 0 :(得分:1)

有两个主要优点:

能够在持久对象之间导航:

order.getProduct().getSupplier().getCompany().getAddress().getStreet();

能够在HQL(或Criteria)查询中使用联接:

select address.street from Order order 
inner join order.product product
inner join product.supplier supplier
inner join supplier.company company
inner join company.address address
where order.id = :id

事实上,我认为协会是使ORM成为ORM的原因。没有它们,你只能获得基本对象,而不是链接到任何其他对象,使用JDBC就足够了。