Multiple fetches with EAGER type in Hibernate with JPA

前端 未结 2 1042
北恋
北恋 2020-11-29 02:40

I have an entity which contains:

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = \"assessment\")
@OrderBy(value = \"order ASC\")
pr         


        
相关标签:
2条回答
  • 2020-11-29 02:51

    The root cause of the problem is that when Hibernate fetches SQL query results there is no simple way to tell which child element belongs to which collection. See this blog entry for more detailed explanation with an example. To summarize you have following workarounds:

    • Load each collection separately using subselect @Fetch(FetchMode.SELECT)
    • Force usage of list instead of bag by adding index column @IndexColumn(name="LIST_INDEX")
    • Use unordered collection like Set.
    0 讨论(0)
  • 2020-11-29 03:11

    If you are using Hibernate and you do not care using Hibernate annotations :

    Annotate your collection fields with:

    @LazyCollection(LazyCollectionOption.FALSE)
    

    Remember to remove the fetchType attribute from the @OneToMany annotation.

    0 讨论(0)
提交回复
热议问题