JPA存储库 - 改进findAll()性能

时间:2015-02-16 08:55:02

标签: java mysql jpa

我正在使用JPA存储库,我需要检索一个完整的Mysql表(40000条记录),它有5个外键用于较小的表(500条记录)。我需要这5个表中每个表的一个字段。

如果我调用JPArepository findall(),则需要几秒钟来检索所有数据。

我需要它更快。有没有办法做到这一点?

我不知道什么是最好的解决方案,如果它可以在mysql端完成,或者必须在Java端完成。 所有表都很好地映射到JPA实体:

@Entity
    @Table(name = "T_CLIENT")
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    public class Client implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(name = "code")
    private String code;

    @OneToOne
    private Seller seller;

    @OneToOne
    private Language language;

    @OneToOne
    private Address address;

    @OneToOne
    private Country billCountry;

    @OneToOne
    private ClientType clientType;
}

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

您可以使用EntityGraph机制从外键表中选择加载字段。