我有一个在服务器启动时运行的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>();
答案 0 :(得分:0)
尝试使用@Fetch(FetchMode.JOIN)
或@Fetch(FetchMode.SUBSELECT)
请参阅The @Fetch annotation mapping以获取解释。