在JSF中延迟加载模型对象的最佳实践是什么

在JSF中延迟加载模型对象的最佳实践是什么,jsf,lazy-loading,Jsf,Lazy Loading,我正在开发一个web应用程序,希望在模型中使用延迟加载。 因此,我调整了getter方法,并检查该值是否为null且未加载,如果是,它会从db请求该值 现在的问题是,如果在一个点上没有加载许多值,并且我通过getter(例如从xhtml页面)访问它们,那么它会创建大量的数据库连接,每个小查询都在其中 我现在想知道,这样一个延迟加载模型是如何在大型web应用程序(如电子商务)中实现的。他们是否有一个缓存所有一次性数据的池,以便首先检查缓存,然后才访问数据库?或者最好使用永久打开的应用程序范围的DB

我正在开发一个web应用程序,希望在模型中使用延迟加载。 因此,我调整了getter方法,并检查该值是否为null且未加载,如果是,它会从db请求该值

现在的问题是,如果在一个点上没有加载许多值,并且我通过getter(例如从xhtml页面)访问它们,那么它会创建大量的数据库连接,每个小查询都在其中

我现在想知道,这样一个延迟加载模型是如何在大型web应用程序(如电子商务)中实现的。他们是否有一个缓存所有一次性数据的池,以便首先检查缓存,然后才访问数据库?或者最好使用永久打开的应用程序范围的DB连接,以避免创建新连接

我应该如何实现模型的加载策略,这些模型在页面访问时根据需要加载,但延迟加载所有其他元素

例如,我们在DB中有以下章节结构:

章 1.1章 1.2章 1.2.1章
页面x加载第1.1章,但没有父项和子项,只有名称及其id。当用户打开它时,它还应加载子项lazy等等…

您已经在使用PrimeFaces,其中已支持lazy加载,并且与多个迭代组件相关联。对于连接/连接池,一般应用服务器都支持开箱即用的一切,因此,无需重新发明连接池、事务管理容器管理的事务,如果需要,也可以使用bean管理的事务,例如,如果您在某些特殊情况下需要访问服务层之外的数据库,请访问web层,例如,安全性等。您好,谢谢您的回答。我正在使用Tomcat7。如果我创建了一个新的连接元素JDBC,它真的是在某个地方汇集的吗?不是每次都创建新连接,因为我无法检查某处是否存在池连接?Tomcat是否支持这种开箱即用的功能?我如何检查它是否有效?