标签:
两种情况:
1、load和get的区别是,load一个对象出来是,并没有对数据库进行去数据,只是根据给的id创造出一个代理对象,用的时候再去数据库中取。get直接去数据库取;区别在于是不是立刻到数据库中取数据
2、而fetch=join还是select的区别(annotation里是fetch=FetchType.LAZY还是EAGER)是,join(eager)的话,去数据库取数据的时候会把与这个类相关的其他表中的数据一次直接取出,而select(lazy)会在用的时候再取出。 区别在于在数据库中取数据的步骤。
然而,这种只对load对象有用,SQL语句没用
在sql语句中join后面加fetch
或者在抓取对象entity后面加fetchsize size值设的大一点。
manytoone对应的onetomany那里不要设置fetch=FetchType.EAGER不然会多出很多sql语句。
标签:
原文地址:http://www.cnblogs.com/chuliang/p/5762202.html