Wie Fetch @OneToMany und @ManyToMany Personen

mein Problem ist sehr verwandt der folgenden Schritte aus:

Warum bin ich immer ein Hibernate-LazyInitializationException in das Spring MVC web-Anwendung, wenn die Daten korrekt angezeigt?

Habe ich die folgenden Eigenschaften auf eine bestimmte Entität:

@OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REMOVE})
@JoinColumn(referencedColumnName = "id", name = "ID_FORMAT_FILE")
private List<ColumnFormat> columnList;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "FILEFORMAT_ORIGINATOR", joinColumns = @JoinColumn(name =   "FILEFORMAT_ID", referencedColumnName = "id")
    , inverseJoinColumns = @JoinColumn(name = "ORIGINATOR_ID", referencedColumnName = "id"))
private List<Originator> originators;  

Wie Sie vielleicht bemerkt haben, habe ich ein eifriger Fetch-Typ auf beiden Beziehungen, aber es gibt folgende:

Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
    at org.hibernate.loader.BasicLoader.postInstantiate(BasicLoader.java:94)
    at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:119)
    at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:71)
    at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:54)
    at org.hibernate.loader.entity.BatchingEntityLoader.createBatchingEntityLoader(BatchingEntityLoader.java:133)
    at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1914)
    at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1937)
    at org.hibernate.persister.entity.AbstractEntityPersister.createLoaders(AbstractEntityPersister.java:3205)
    at org.hibernate.persister.entity.AbstractEntityPersister.postInstantiate(AbstractEntityPersister.java:3191)
    at org.hibernate.persister.entity.SingleTableEntityPersister.postInstantiate(SingleTableEntityPersister.java:728)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:348)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902)
    ... 33 more  

Muss ich Zugriff auf beide Listen List<ColumnFormat> columnList und List<Originator> originators auf verschiedenen Bohnen, aber die sind beide von Fetch-Typ Eifrig bekomme ich das oben genannte problem, und wenn einer von Ihnen ist Faul bekomme ich die folgende:

Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: xxx.xxx.xxx.xxx.FileFormat.originators, no session or session was closed
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
    at org.hibernate.collection.AbstractPersistentCollection.readElementExistence(AbstractPersistentCollection.java:157)
    at org.hibernate.collection.PersistentBag.contains(PersistentBag.java:262)
    at java.util.ArrayList.batchRemove(ArrayList.java:632)
    at java.util.ArrayList.removeAll(ArrayList.java:605)
    at xxx.xxx.xxx.xxx.bean.FileFormatEdit.init(FileFormatEdit.java:1040)
    ... 75 more  

Gibt es eine Möglichkeit zum abrufen der Listen auf die verschiedenen Bohnen ohne diese Probleme?

konnte Sie nach ein paar codes, die Sie verwenden, um die Daten abzurufen?
Eine Antwort kann hier gefunden werden : Hibernate kann nicht gleichzeitig Holen mehrere Taschen

InformationsquelleAutor camiloqp | 2011-03-31

Schreibe einen Kommentar