前言:关联关系有两种加载类型,延迟加载,立即加载
1.延迟加载:
fetch=FetchType.LAZY 延迟加载 (当从数据库中获取一条数据时,不会立刻加载与该数据关联的数据,而是在我们第一次操作到关联数据的对象时,才会去数据库中load数据。)*注意:要使用延迟加载特性,EntityManage对象必须没有被关闭。
2.立即加载:
fetch=FetchType.EAGER 立即加载 (当获取一个对象时,会立刻获得与该对象关联的其他对象。)
这是关联关系属性加载的两种方式。
现在我们看一下,一对多,一对一关联关系的默认加载类型:
@OneTOMany 在一对多关系中,当我们没有设置加载类型时,其默认值为LAZY也就是延迟加载。其实这很好理解,如果我们加载一的时候,默认加载了多时,这显然不合理,我们举一个例子:如果与一相关的有几十万个条数据,而这些数据并不被立即使用,那么默认加载出来,是十分浪费数据库I/O的。
@OneToOne在一对一关系中,默认值是EAGER,也就是立即加载。
至于多对多关系,我稍后会补充出来。。。。。。