Hibernate Spring数据rest响应太慢
在一个带有hibernate、PostgreSQL的spring data rest API中,我遇到了一个响应速度慢的问题,每次调用都需要17秒:端点:Hibernate Spring数据rest响应太慢,hibernate,spring-data-rest,Hibernate,Spring Data Rest,在一个带有hibernate、PostgreSQL的spring data rest API中,我遇到了一个响应速度慢的问题,每次调用都需要17秒:端点: 公共类书实现了可序列化{ // ..... @身份证 @GeneratedValue(策略=GenerationType.AUTO) 私有UUID; 私有字符串引用; 私有LocalDate编辑; 私有整数数量; @OneToMany(mappedBy=“book”,fetch=FetchType.LAZY) @订购人(“已开始描述”) 专用
公共类书实现了可序列化{
// .....
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有UUID;
私有字符串引用;
私有LocalDate编辑;
私有整数数量;
@OneToMany(mappedBy=“book”,fetch=FetchType.LAZY)
@订购人(“已开始描述”)
专用集阅读器;
@OneToMany(mappedBy=“book”,fetch=FetchType.LAZY)
@订购人(“已开始描述”)
私有集更新程序;
// .....
}
公共类学生实现可序列化{
// .....
// .....
}
公共类实现可序列化{
// .....
// .....
}
@RepositoryRestResource(path=“books”,collectionResourceRel=“books”)
公共接口BookRepository扩展了JpaRepository{
}
我的数据库里有5000多条图书记录
我如何“加速此请求”如果订单在您的收藏中很重要,您不应该使用
设置
(读卡器、更新器)。您应该使用List
顺序不太重要,Set不允许重复元素从这个hibernate映射中很难得出性能问题的结论。我建议您启用hibernate sql跟踪(显示sql
,格式化sql
,使用sql注释
),并在发送请求时分析生成的sql查询。可能是N+1的问题……如果顺序不那么重要,为什么要使用@OrderBy(“started DESC”)
?列表保存记录的保存顺序这与学生/教授开始阅读/复习一本书是完全不同的。
public class Book implements Serializable {
// .....
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;
private String reference;
private LocalDate edited;
private Integer quantity;
@OneToMany(mappedBy = "book", fetch = FetchType.LAZY)
@OrderBy("started DESC")
private Set<Student> readers;
@OneToMany(mappedBy = "book", fetch = FetchType.LAZY)
@OrderBy("started DESC")
private Set<Professor> updaters;
// .....
}
public class Student implements Serializable {
// .....
// .....
}
public class Professor implements Serializable {
// .....
// .....
}
@RepositoryRestResource(path = "books", collectionResourceRel = "books")
public interface BookRepository extends JpaRepository<Book, UUID> {
}