Boa noite pessoal,
Estou com um problema bem complexo de se resolver…
Em uma determinada entidade, criei 2 relacionamentos @OneToMany usando List, o que causa o conhecido erro de multiple bags no Hibernate.
Algumas soluções deram parcialmente certo, porém todas geram desvantagens enormes, e tal módulo já está “pronto”, e causaria grande prejuízo ter q mudar algumas coisas, gostaria de uma luz de vcs que são mais experiente que eu, segue as soluções:
-
Usar anotação @IndexColumn: Resolve o erro, mas ou cria tabelas a mais, ou se eu indexar pela PK, gera objetos nulos na List.
-
Trocar a List por Set: O problema disso é que uso JSF 2.0 + Hibernate… e não consigo ligar por exemplo um dataTable a um Set diretamente… Isso geraria prejuízo de produtividade muito grande… Além disso, mtos método usam list.get(index)… coisa que Sets não tem…
-
FetchType.EAGER: Pior de todas, muitos locais não uso os ítens da coleção… e isso acarretaria em mtos selects desnecessários…
-
@Fetch(FetchMode.SUBSELECT): Porém, em um determinado cenário do sistema, preciso trazer uma lista de objetos, com suas listas já carregadas também, e não consegui uma maneira de criar uma query ou criteria que carregasse desta maneira…
Alguém tem alguma sugestão???
Abraços