由于“在视图中打开会话”模式有一些缺点(参见Why is Hibernate Open Session in View considered a bad practice?),我想知道将hibernate查询的结果显示到jsp页面的最佳方法是什么?
我想到的一个方法是在请求中放入一个java.util.list对象,并将内容输出到jsp页面。还有其他/更好的方法吗?
答案 0 :(得分:1)
最好的方法是在UI视图中使用DTO投影。这样您就可以避免LazyInitializationExceptions
,并确保只在特定视图中获取所需内容。从性能的角度来看,无论如何都没有什么能胜过SQL投影。
DTO投影如下所示:
select new my.package.UserInfo(u.name, u.age, u.gender)
from Users u