hibernate 中get和load的区别

hibernate中提供了两个方法get和load这两个方法,具体的实现方式如下:

...get(User.class,id);

....load(Organization.class, id));

 

这两个方法中都是获取数据的意思

1.get方法是要先从内部缓存中去找数据,如果找不到数据就通过sql去数据库中去取,而load方法不会去数据库中取而是通过内部缓存(hibernate一级缓存)中找,如果找不到再到二级缓存中去找,如果缓存中都找不到对象的话,就会抛出异常org.hibernate.ObjectNotFoundException。

2.get方式会直接给数据库发出sql的申请,而load支持延迟加载lazy。

3.找不到符合条件的数据,get()方法将返回null。load()将会报出ObjectNotFoundEcceptio。

4.get()方法直接返回实体类。load()方法可以返回实体的代理类实例。


你可能感兴趣的:(Hibernate)