单向和双向JPA和Hibernate关联之间有什么区别?
访问关联方
第一个与您如何访问关系有关。对于单向关联,您只能从一端导航关联。
- 对于单向@ManyToOne关联,这意味着您只能从外键所在的子端访问该关系。
- 如果您具有单向@OneToMany关联,则意味着您只能从外键所在的父侧访问该关系。
- 对于双向@OneToMany关联,您可以通过两种方式从父方或子方导航关联。
您还需要对双向关联使用添加/删除实用程序方法,以确保双方正确同步。
性能
- 因为@OneToMany,单向关联的效果不如双向关联。
- 对于@OneToOne,双向关联,将导致母公司要获取热切如果Hibernate无法告诉代理是否应该分配或空值。
- 因为@ManyToMany,集合类型的Sets表现优于集合,产生了很大的变化Lists。