假设对象A关联对象B,对应地, 表a 关联 表b(表b 外键参考 表a)
现在我们要把所有A和其对应的B 从数据库中翻出来
如果不用O/R Mapping,直接用SQL,则可以写一条连接两表的SELECT语句搞定
select * from a join b on b.aId = a. aId
如果用O/R Mapping,实际生成的SQL可能是
select * from a (假设取出的a的ID分别是 1,2…n)
select * from b where b.aId = 1
select * from b where b.aId = 2
……
select * from b where b.aId = n
一共需要执行 n+1 条语句!
当然也不是所有的O/R Mapping框架中都有这个问题。比如Hibernate就可以通过HQL来避免