昆明java培训
达内昆明广州春城路

18487146383

热门课程

Hibernate:检索策略三个知识点

  • 时间:2016-10-21
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训班的老师今天给大家讲Hibernate的检索策略三个知识点。

一、Hibernate的检索策略本质上是为了优化Hibernate性能。

二、Hibernate检索策略包括类级别的检索策略、和关联级别的检索策略(<set>元素)

三、类级别的检索策略

1.立即检索、延迟检索

2.通过<class>节点的lazy属性来控制。默认为true,即为延迟检索。

3.只针对session的load()方法生效。

默认情况下,通过load()方法获取到的对象是一个代理对象,Hibernate创建代理对象时,仅会初始化OID。

在第一次访问非OID属性时,Hibernate会初始化代理类实例。

4.测试

(1)<class>的lazy属性为true

@Test

public void testStrategyClassLevel() {

Customer customer = (Customer) session.load(Customer.class, 5);

System.out.println(customer.getClass());

System.out.println(customer.getCustomerId());

System.out.println("--------------");

System.out.println(customer.getCustomerName());

}

class com.nucsoft.strategy.many2one.Customer_$$_javassist_0

5

--------------

Hibernate:

select

customer0_.customer_id as customer1_2_0_,

customer0_.customer_name as customer2_2_0_

from

hibernate.customer customer0_

where

customer0_.customer_id=?

bb

(2)<class>的lazy属性为false

@Test

public void testStrategyClassLevel() {

session.load(Customer.class, 5);

}

Hibernate:

select

customer0_.customer_id as customer1_2_0_,

customer0_.customer_name as customer2_2_0_

from

hibernate.customer customer0_

where

customer0_.customer_id=?

昆明Java培训班的老师下一期还会继续给大家讲Hibernate的检索策略的知识点。

上一篇:Java培训:CGLIB代理
下一篇:Hibernate:关联级别的检索策略

掌握2点流技术成为java高手

java游戏开发编程难吗?——达内java培训

程序猿必学之Java 9——昆明达内

java集合-Iterator迭代

选择城市和中心
贵州省

广西省

海南省