JPA resolviendo algunos problemas

Trabajando con colecciones en mapeos ORM podemos encontrarnos con diferentes situaciones.
En el caso de ManyToMany con cargas completas o EAGER en Hibernate existe un error frecuente:

“cannot simultaneously fetch multiple bags”

Para solucionar esto, tenemos varias alternativas.

  1.    Cambiar todas las relaciones Collection, List por Set.
  2.    Remover las relaciones de tipo EAGER por Lazy.
    LAZY es la opción por defecto.
  3.   Agregar :
    @LazyCollection(LazyCollectionOption.FALSE) 
  4.   Agregar @IndexColumn:
    @IndexColumn(name=”INDEX_COL”)
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@IndexColumn(name=”INDEX_COL”)
List<Child> childs = new LinkedList<Child>();  

Espero que esta documentación ayude a resolver este problema.

Anuncios