小编kou*_*mln的帖子

即使使用@Fetch(FetchMode.JOIN),JPA + Hibernate 也有太多查询问题

我正在使用 Spring Boot 开发 REST 应用程序,并且正在尝试优化查询的性能。我目前正在使用findAll导致性能问题的存储库。代码如下:

个人实体

@Entity
@Table(name = "cd_person")
@Data
@NoArgsConstructor
public class Person {
    ....
    @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "password_id")
    @Fetch(FetchMode.JOIN)
    private Password password;
    ....
    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
    @JoinTable(name = "cd_person_role",
        joinColumns = @JoinColumn(name = "person_id", referencedColumnName = "id"),
        inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
    @Fetch(FetchMode.JOIN)
    private Set<Role> roles = new HashSet<>();
}
Run Code Online (Sandbox Code Playgroud)

密码实体

@Entity
@Table(name = "cd_password")
@Data
@NoArgsConstructor
public class Password { …
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data-jpa spring-boot

4
推荐指数
1
解决办法
2768
查看次数

标签 统计

hibernate ×1

java ×1

spring-boot ×1

spring-data-jpa ×1