Hibernate检索机制,主要分为三种:
1.立即检索策略:检索一个对象时会把与之间的对象检索出来。
2.延迟检索策略:避免加载多余的对象,防止空间资源浪费。
3.做外链接策略:利用SQL的外连接的查询功能,减少检索SQL语句的条数。
以下对于三种策略进行解释:
1.立即检索策略:
优点:当使用检索策略,不管对象处于持久化状态,还是游离状态,都可以从一个对象导航到与他关联的另一个对象。
缺点:由于select语句的数目太多,需要频繁的访问数据库,
2.延迟检索策略:
优点:由应用程序决定需要加载那些对象,可以避免执行多余的select语句,以及避免加载应用程序不需要访问的对象。因此能够大大提高检索的性能,并且能够很好的节省内存空间。
延迟检索使用范围:
①一对多或者多对多关联。②应用程序不需要立即访问或者根本不会访问的对象。
缺点:应用程序如果希望访问游离状态的代理类实例,必须保证它在持久化状态时已经被初始化。要不然会出现异常。
3.左外连接检索策略:
优点:对应用程序完全透明,不管对象处于持久化,还是游离状态,应用程序都可以方便的从一个对象导航到与它关联的对象。使用了外链接,select语句数目少。
缺点:可能会加载应用程序不需要访问的对象,白白浪费许多内存空间;复杂的数据库表连接也会影响检索性能;
左外连接检索使用范围:
①多对一或者一对一关联。②应用程序需要立即访问的对象。③数据库系统具有良好的表连接性能