自问自答吧....经过查找hibernate的文档和上网查找相关资料,发现如果使用1对多的多层关系,必然回导致查询时出现大量的sql语句.网上有人提出,去掉1对多的关系.但是毕竟对象业务上有关系存在,删除了关系那就不伦不类了.
我的解决方法是:
将"试卷"-(1对多)-"试题"-(1对多)-"选项" 变为 "选项"-(多对1)-->"试题"-(多对1)-"试卷" 的关系,hibernate推荐尽量使用"多对1"关系, "多对1"的关系再查询和插入数据方面比"1对多"性能好. 将原来的"1对多"变为"多对1"后, 实际业务中还是需要"1对多"的关系, 因此查询出多对1关系后,手工建立会1对多的关系..
select 试题, 试题.试卷 where 试题.试卷.Id = ?
试题.试卷.get试题s().add(试题)
1条sql语句就能完成 1对多的关系建立.
虽然问题解决了,但始终觉得没真正解决问题..... ...