hibernate根据id来查询对象的方式有两种:get()和load().具体区别如下
- get()
1.当get方法被调用的时候会立刻发出sql语句去数据库查询,返回的是真实对象
2.根据id没有查询到对象的时候,会返回null
- load()
1.延迟加载:当load()方法被调用的时候不会立刻发出sql语句,当调用除ID外的属性时候,才会发出sql语句
2.当load()方法被调用的时候,返回的是代理对象,这个代理对象只储存了目标对象的ID值
3.根据id没有查询到对象的时候,返回ObjectNotFoundException(代理对象不为空,调用除ID外的属性时抛异常)
共同点:支持一级缓存(session级别)