用一个比较玩赖的办法,你把User类中的private Branch branch;
改称private Integer branchId,你看行不,执行效率也提高了。我想有的时候不用一定要准奏Hibernate的规则或思想。
改称private Integer branchId,你看行不,执行效率也提高了。我想有的时候不用一定要准奏Hibernate的规则或思想。
解决方案 »
- Hibernate的Annotation
- liferay分页?
- The requested resource (/MyFirst/Servlet) is not available.
- 急 quartz cronExpression 配置问题
- Tomcat5.5,突然没有响应?<急>
- jsf页面<h:selectOneMenu>标签中使用<a4j:support>实现级联菜单问题。
- 请教一个servlet的问题
- oracle数据库的这个Sql语句什么意思!
- JMX和JDMK有什么区别?谢谢!
- Spring Data Jpa 关于查部分字段的分页问题
- Struts标签嵌套的问题
- struts 关于arraylist的问题 在线等
user.setBranch(b);就是这样, 不会多出一个查询,因为 load是惰性载入
举例子吧Branch b = session.load(Branch.class,id);
执行这条的时候, 不会马上产生 select * from branch where id=?
因为这个时候还不需要branch的数据.
如果你下面执行
b.getName();
那么这时候才产生select语句, 因为这个时候才真正需要数据.Branch b = session.load(Branch.class,id);
user.setBranch(b);
这两条语句没有用到 b里面的任何数据, 当然就不会生成 select 语句了hibernate懒惰,不就正如你所愿吗