org.hibernate.loader.MultipleBagFetchException: kann nicht gleichzeitig mehrere Säcke Holen

Folgendes ist mein code Hier verwende ich mehrere Listen zum abrufen von Daten aus der Datenbank.
Auf das abrufen von Daten von hql-Abfrage ist es, zu zeigen Ausnahme.

Pojo-Klasse

public class BillDetails implements java.io.Serializable {

private Long billNo;
//other fields
@LazyCollection(LazyCollectionOption.FALSE)
private List<BillPaidDetails> billPaidDetailses = new ArrayList<BillPaidDetails>();
private Set productReplacements = new HashSet(0);
@LazyCollection(LazyCollectionOption.FALSE)
private List<BillProduct> billProductList = new ArrayList<BillProduct>();
//getter and setter
}

hmb.xml Datei

<class name="iland.hbm.BillDetails" table="bill_details" catalog="retail_shop">
        <id name="billNo" type="java.lang.Long">
            <column name="bill_no" />
            <generator class="identity" />
        </id>
 <bag name="billProductList" table="bill_product" inverse="true" lazy="false" fetch="join">
            <key>
                <column name="bill_no" not-null="true" />
            </key>
            <one-to-many class="iland.hbm.BillProduct" />
        </bag>
        <bag name="billPaidDetailses" table="bill_paid_details" inverse="true" lazy="false" fetch="select">
            <key>
                <column name="bill_no" not-null="true" />
            </key>
            <one-to-many class="iland.hbm.BillPaidDetails" />
        </bag>
        <set name="productReplacements" table="product_replacement" inverse="true" lazy="false" fetch="join">
            <key>
                <column name="bill_no" not-null="true" />
            </key>
            <one-to-many class="iland.hbm.ProductReplacement" />
        </set>
    </class>

Hql-Abfrage

String hql = "select distinct bd,sum(bpds.amount) from BillDetails as bd "
                    + "left join fetch bd.customerDetails as cd "
                    + "left join fetch bd.billProductList as bpd "
                    + "left join fetch bpd.product as pd "
                    +"left join fetch bd.billPaidDetailses as bpds "
                    + "where bd.billNo=:id "
                    + "and bd.client.id=:cid ";

Ich versuche folgende Abfrage zum abrufen von Daten aus der Datenbank aber das zeigt
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
Wie zu beheben dieses

  • Haben Sie versucht, ändern Ihre Listen Setzt?
  • Dieser Artikel kann dir helfen: blog.eyallupu.com/2010/06/...
  • Was ist der name der eindeutigen id-Eigenschaft auf BillProduct?
  • Anstelle der Liste mit Sets arbeiten. Aber ich will, zu tun, Liste
  • Tun Sie wirklich brauchen, um die Listen verwenden?
  • Wenn möglich mit Liste, dann möchte ich es zu benutzen.
  • Gewählte einfache Art und Weise Konvertiert, die ganze Liste zu setzen

InformationsquelleAutor xrcwrn | 2014-07-10
Schreibe einen Kommentar