Hibernate fetch急需很长时间

时间:2017-02-01 21:13:02

标签: java mysql database performance hibernate

我有一个在服务器启动时运行的hibernate查询,用于将数据从Mysql同步到我们的缓存服务器。

由于实体将另一个实体作为子项,因此始终需要使用Fetch = ALL。

使用Hibernate运行查询时需要大约3-4分钟(这是一个包含大约600条记录的小表)。运行本机SQL查询时需要0.17秒。我错过了什么?

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "hotLeadConfigId")
private Set<HotLeadSpecialPagesEntity> specialPages = new HashSet<HotLeadSpecialPagesEntity>();

以下是我正在进行的查询: Query time on MySQL Phpmyadmin

1 个答案:

答案 0 :(得分:0)

尝试使用@Fetch(FetchMode.JOIN)@Fetch(FetchMode.SUBSELECT)

对其进行注释

请参阅The @Fetch annotation mapping以获取解释。