我有一个使用Hibernate和Velocity的spring web应用程序。这是一个MVC应用程序。我将ModelMaps传递给服务级别。我还在服务级别使用我的Hibernate持久性对象。我有这些“域”对象,它们与持久性对象基本相同,除了我将它们包含在ModelMap中并在速度中使用then。我的问题是:我可以取消“域”对象并使用ModelMap中的持久性对象,还是会导致某些问题(可能是性能问题)?
感谢您的帮助, 乔
答案 0 :(得分:0)
只要您正在编写模板,而不是某些设计师(并假设以后不会更改),它可能就好了。
你最大的问题就是捕捉错误。如果某些内容未加载,您可能已经在响应中发送了部分呈现的模板。因此,您可能希望缓冲输出,VelocityLayoutServlet默认情况下基本上这样做(不是布局模板,而是主要内容)。 VelocityViewServlet将要求您翻转设置。我不记得哪一个,随便。请查看VelocityView类以获取更多信息。
答案 1 :(得分:0)
另一个问题是,如果你使用延迟加载,你很可能会遇到Hibernate想要加载你只在视图中使用的数据的情况,但你已经关闭了{{1 }}。 OpenSessionInView模式可以帮助您解决这个问题,但这并不总是被视为一个干净的解决方案(另请参见此处:Why is Hibernate Open Session in View considered a bad practice?)