Sql 使用Spring(Tomcat)和JavaEE(JBoss)的各种查询数量
我在Tomcat上使用Spring创建了一个应用程序,在JBossAS7上使用JavaEE(EJB+JSF)创建了第二个应用程序。作为ORM,我选择Hibernate,或者我认为是这样 假设我有一个包含旅行优惠的页面。我可以点击一个链接,使用AJAX加载行程描述 对于Spring版本,在选择描述链接后,只向数据库发送一个查询。这很好 但是对于JavaEE版本,在相同的情况下,会发送七个查询!当前站点上显示的每个旅行优惠的七个查询。因此,如果我能看到4个旅行优惠,那么就有4*7个SQL查询!这就是性能低下的原因 服务层(即SQL查询)在两个版本中都是相同的。在Spring版本中,使用jQuery(通过post)发送请求。在JavaEE中,我使用JSFAjax支持Sql 使用Spring(Tomcat)和JavaEE(JBoss)的各种查询数量,sql,performance,spring,hibernate,jakarta-ee,Sql,Performance,Spring,Hibernate,Jakarta Ee,我在Tomcat上使用Spring创建了一个应用程序,在JBossAS7上使用JavaEE(EJB+JSF)创建了第二个应用程序。作为ORM,我选择Hibernate,或者我认为是这样 假设我有一个包含旅行优惠的页面。我可以点击一个链接,使用AJAX加载行程描述 对于Spring版本,在选择描述链接后,只向数据库发送一个查询。这很好 但是对于JavaEE版本,在相同的情况下,会发送七个查询!当前站点上显示的每个旅行优惠的七个查询。因此,如果我能看到4个旅行优惠,那么就有4*7个SQL查询!这就是
这种行为的原因是什么?我不确定,也许Hibernate在JavaEE版本中没有真正使用?在persistence.xml中,我有以下内容:
org.hibernate.ejb.HibernatePersistence
首先,您必须确定多个SQL查询是由客户端引发的,还是后端有不同的内容
尝试打开Firebug或类似工具,检查浏览器是否发送了一系列单独的HTTP请求。查询是由客户端应用程序引发的。我试图从萤火虫身上找到一些东西。在Spring中,浏览器发送一篇带有参数tourId的帖子。在JSF post中,looks:j_idt30 j_idt30 javax.faces.ViewState 18904043989957610430:5258909192808903679 javax.faces.behavior.偶…action javax.faces.partial.ajax true javax.faces.partial.event click javax.faces.partial.execu…j_idt30:j_idt31:0:j_idt35 j_idt30:0:j_idt31:0:j_idt35 javax.faces.partialjavax.faces.source j_idt30:j_idt31:0:j_idt35在阅读本主题后解决了问题getter中没有DB逻辑,解决了问题。