0

我在 Tomcat 上使用 Spring 创建了一个应用程序,在 JBoss AS 7 上使用 Java EE (EJB + JSF) 创建了第二个应用程序。作为 ORM,我选择 Hibernate,或者我认为是这样。

假设,我有一个包含旅行优惠的页面。我可以单击链接以使用 AJAX 加载行程描述。

在 Spring 版本中,选择描述链接后,只会向数据库发送一个查询。这很好。

但是对于 Java EE 版本,在同样的情况下,发送了 7 个查询!当前站点上显示的每个行程报价的七个查询。所以,如果我能看到 4 个行程报价,那么就有 4*7 个 SQL 查询!这就是性能低的原因。

服务层,即 SQL 查询,在两个版本中都是相同的。在 Spring 版本中,使用 jQuery 发送请求(通过邮寄)。在 Java EE 中,我使用 JSF AJAX 支持。

这种行为的原因是什么?我不确定,也许 Java EE 版本中并没有真正使用 Hibernate?在persistance.xml 我有以下内容<provider>org.hibernate.ejb.HibernatePersistence</provider>

4

1 回答 1

0

首先,您必须确定多个 SQL 查询是由客户端引发的,还是后端是否存在不同之处。

尝试打开 Firebug 或类似工具并检查您的浏览器是否正在发送一堆单独的 HTTP 请求。

于 2012-08-17T17:58:37.247 回答