相关疑难解决方法(0)

Hibernate可以用于性能敏感的应用程序吗?

我发现检索与其他对象有很多关系的多个对象实例时出现性能问题.我在MySQL中使用Spring和Hibernate的JPA实现.问题是,在执行JPA查询时,Hibernate不会自动连接到其他表.这导致n*r + 1个SQL查询,其中n是要检索的对象的数量,r是关系的数量.

例如,一个人住在一个​​地址,有很多爱好,并访问了许多国家:

@Entity
public class Person {
    @Id public Integer personId;    
    public String name;    
    @ManyToOne public Address address;    
    @ManyToMany public Set<Hobby> hobbies;    
    @ManyToMany public Set<Country> countriesVisited;
}
Run Code Online (Sandbox Code Playgroud)

当我执行JPA查询以获取名为Bob的所有人员时,数据库中有100个Bobs:

SELECT p FROM Person p WHERE p.name='Bob'
Run Code Online (Sandbox Code Playgroud)

Hibernate将此转换为301个SQL查询:

SELECT ... FROM Person WHERE name='Bob'
SELECT ... FROM Address WHERE personId=1
SELECT ... FROM Address WHERE personId=2
...
SELECT ... FROM Hobby WHERE personId=1
SELECT ... FROM Hobby WHERE personId=2
...
SELECT ... FROM Country WHERE personId=1
SELECT ... FROM Country …
Run Code Online (Sandbox Code Playgroud)

java performance hibernate jpa java-ee

21
推荐指数
2
解决办法
1万
查看次数

具有高流量使用率的Struts2应用程序(网站)的性能增强

我想问一下,为了创建基于STRUTS2的高性能Web应用程序,我应该记住一切.保证该站点具有高流量(即假设每天约500,000个请求).还会有大量的数据库访问.

请评论,因为我决定使用以下框架(或建议任何更好的替代方案):

  1. Struts2 +弹簧和休眠
  2. Jsp + jquery用于视图
  3. DWR用于ajax调用

请提出一些性能调整/增强策略.谢谢!

java performance jsp struts2 high-traffic

2
推荐指数
1
解决办法
2199
查看次数

标签 统计

java ×2

performance ×2

hibernate ×1

high-traffic ×1

java-ee ×1

jpa ×1

jsp ×1

struts2 ×1