建议我们在整个系统中使用懒加载来提高性能。这意味着将OneToOne映射更改为带有“mappedBy”属性的@OneToMany映射。这样做是为了解决从数据库加载不必要数据导致应用程序缓慢的问题。
我们运行一个多层系统(基本上是2层)。我们有前端-使用JSF和包含业务和数据库访问层的后端。前端和后端通过EJB通信,但EJB中没有真正的逻辑。其他技术使用-Spring和Hibernate。
现在,在阅读了一些相关主题后,似乎懒加载的使用并非万无一失,因为它需要正确应用。对于每个懒加载,都会发出一个Select语句来获取数据。还存在这样的问题:如果前端访问要懒加载的属性,并且后端关闭了会话/连接,则会得到null。
以上是否正确?
那么,实施懒加载解决方案或性能改进的最佳方法/实践是什么?希望尽可能不重新设计数据模型。
我的初步想法是与DBA团队合作,了解两个系统之间的情况-查询的外观,如何使用数据等。确定问题点,检查Hibernate对象/查询以找出如何最好地改进它。还要查看前端,以确定如何从后端传递和显示数据等。
这是一个好方法/其他方法吗?
我们运行一个多层系统(基本上是2层)。我们有前端-使用JSF和包含业务和数据库访问层的后端。前端和后端通过EJB通信,但EJB中没有真正的逻辑。其他技术使用-Spring和Hibernate。
现在,在阅读了一些相关主题后,似乎懒加载的使用并非万无一失,因为它需要正确应用。对于每个懒加载,都会发出一个Select语句来获取数据。还存在这样的问题:如果前端访问要懒加载的属性,并且后端关闭了会话/连接,则会得到null。
以上是否正确?
那么,实施懒加载解决方案或性能改进的最佳方法/实践是什么?希望尽可能不重新设计数据模型。
我的初步想法是与DBA团队合作,了解两个系统之间的情况-查询的外观,如何使用数据等。确定问题点,检查Hibernate对象/查询以找出如何最好地改进它。还要查看前端,以确定如何从后端传递和显示数据等。
这是一个好方法/其他方法吗?