Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Spring数据rest响应太慢_Hibernate_Spring Data Rest - Fatal编程技术网

Hibernate Spring数据rest响应太慢

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) @订购人(“已开始描述”) 专用

在一个带有hibernate、PostgreSQL的spring data rest API中,我遇到了一个响应速度慢的问题,每次调用都需要17秒:端点:

公共类书实现了可序列化{
// .....
@身份证
@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> {
}