我正在使用 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;
}
感谢您的回答。
最佳答案
您可以使用 EntityGraph 从外键表中选择加载字段机制。
关于java - JPA 存储库 - 改进 findAll() 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537652/