19.cascade与“读”不发生关系。只与增删改有关。”读“与fetch有关。

对于“读”:hibernate的默认设置符合人们使用的习惯。如果要手动控制”读“,可以设置fetch属性。

如果导航起始对象为“多”,读取该对象,hibernate默认将导航终止对象也会读出来。

如果导航起始对象为“1"“,读取该对象,hibernate默认不会将导航终止对象读取出来。可以设置fetch=FetchType.EAGER,一旦是EAGER的,那么在get导航起始对象后,导航终点对象自动保存到内存,在commit()后可用,否则如果fetchType.LAZY那么当第一次使用导航终点对象的时候会查询数据库,则在commit()之后不可用。

如果要在Client端操作的对象少一些,可以在导航起始对象设置cascade

session的get和load在使用方面没有太多的差异。load生成一个代理对象,不会立即发sql语句,第一次使用的时候查询数据库。

posted @ 2013-10-16 20:35  FishBird  阅读(143)  评论(0编辑  收藏  举报