hibernate小结

来源:互联网 发布:网页数据采集 编辑:程序博客网 时间:2024/06/05 15:37

hibernate中get和load的区别:

使用get查询的时候,无论查询到的结果是不是立刻使用,都会根据主键直接把要查询的东西查询出来,也就意味着查询语句的立即执行(结果可以保存在一个响应对象中,之后可以调用进行使用,即使session已经关闭了,但是信息已经保存在一个响应对象中了,所以可以进行使用)。

在使用load查询时候,会先把要查询的主键(一般为id)存在一个代理对象中,后面如果要使用的话,会根据主键进行查询,不然的话,只是保存了主键在session中,这时如果clear了session,那么代理对象也会随之清空,后面就会无法查询(因为没有主键去做索引,不知道要查询哪个)。


hibernate中的缓存:

有session缓存和二级缓存sessionfactory

二级缓存中存的只能是对象,如果查询结果是对象的某些属性而不是一个完整的对象,那么不会被存入二级缓存。并且如果不开启二级缓存,那么只是存储了查询到的对象,而不会存储HQL语句。


hibernate的构建关联关系需遵守的规则

不管是多对一还是一对多或者多对多,都需要记住一点,在哪个实体类声明了外键,就由哪个类来维护关系,在保存数据的时候,总是先保存的是没有维护关联关系的那一方的数据,后保存维护了关联关系(即维护外键的一方)的那一方的数据。


原创粉丝点击