Hibernate 查询1+N问题详解

2014-11-24 14:34:36 · 作者: · 浏览: 3

1、1+N简单来说就是,Person和Phone是一对多关系,现在我看看所有手机的信息,对于其属于哪个人不感兴趣,但把lazy设为false(lazy=false),这样就会发出1(查询手机的sql)+N(和所有查询的这些手机相关的Person的查询sql),这样会造成很大的性能开销。


首先列一下会产生1+N问题的代码


Person:




Phone:






为了使效果明显一点,假定一个手机对应一个不同的用户,现在想数据库中添加一些数据:






解决方案

1、还是在Phone.hbm.xml中把对于Person关联的映射属性不进行lazy属性的设置,默认为lazy加载






ok,这就是小弟看视频对于1+N问题的一点理解,有理解更为深刻的大虾不吝赐教。。