JPA 继承@EntityGraph包括子类的可选关联
给定以下域模型,我想加载所有 s,包括它们的 s 和各自的子子级,并将其放入 a 中,然后转换为 JSON。我有一个有效的解决方案,但它遭受了N + 1问题,我想通过使用临时.所有关联都已配置。Answer
Value
AnswerDTO
@EntityGraph
LAZY
@Query("SELECT a FROM Answer a")
@EntityGraph(attributePaths = {"value"})
public List<Answer> findAll();
使用ad-hoc on the method,我可以确保预先获取值以防止关联上的N + 1。虽然我的结果很好,但还有另一个N + 1问题,因为延迟加载s的关联。@EntityGraph
Repository
Answer->Value
selected
MCValue
使用这个
@EntityGraph(attributePaths = {"value.selected"})
失败,因为该字段当然只是某些实体的一部分:selected
Value
Unable to locate Attribute with the the given name [selected] on this ManagedType [x.model.Value];
我怎么能告诉JPA只在值为a的情况下尝试获取关联?我需要类似的东西。selected
MCValue
optionalAttributePaths