коллекция не связана ни с одним сеансом + Причина: org.hibernate.LazyInitializationException: недопустимый доступ к загрузке коллекции - PullRequest
0 голосов
/ 08 февраля 2012

hbm файл:

<class name="com.shaklee.productCatalogue.persistence.CategoryMasterDBVO" table="PRD_CATEGORY_MASTER" lazy="false">
    <meta attribute="implement-equals" inherit="false">true</meta>
    <meta attribute="extra-import" inherit="false">java.math.BigDecimal</meta>

    <cache usage="nonstrict-read-write"/>

    <!-- Unique identifier -->
    <id name="categoryGuid" column="category_guid" type="java.lang.Long">
        <meta attribute="scope-set">protected</meta>
        <generator class="com.quinstreet.persistence.GuidGenerator"/>
    </id>

    <!--  self reference -->
    <many-to-one name="parent" column="CATEGORY_PARENT_GUID"
        class="com.shaklee.productCatalogue.persistence.CategoryMasterDBVO" />

    <set name="children" cascade="none" inverse="false" lazy="false">
        <key column="CATEGORY_PARENT_GUID"/>
        <one-to-many class="com.shaklee.productCatalogue.persistence.CategoryMasterDBVO"/>
    </set>

    <set name="assignedProducts" table="PRD_PRODUCT_CATEGORY" lazy="false" batch-size="25" cascade="none">
        <key column="CATEGORY_GUID" />
        <many-to-many column="PRODUCT_GUID"
            class="com.quinstreet.persistence.product.ProductDBVO" />
    </set>

    <idbag name="details" table="PRD_CATEGORY_MASTER_L10N" lazy="true"
        batch-size="25">
        <cache usage="nonstrict-read-write"/>

        <collection-id type="long" column="guid">
            <meta attribute="scope-set">protected</meta>
            <generator class="com.quinstreet.persistence.GuidGenerator"></generator>
        </collection-id>

        <key column="CATEGORYGUID" foreign-key="FK_PRD_CATEGORY_MASTER_L10N_CATEGORY" />

        <composite-element
            class="com.shaklee.productCatalogue.persistence.CategoryMasterl10nDetailsDBVO">
            <meta attribute="implements">com.quinstreet.domain.product.CategoryMasterl10nDetails
            </meta>
            <meta attribute="extends">com.quinstreet.domain.l10n.AbstractL10nDetails
            </meta>
            <meta attribute="implement-equals" inherit="false">true</meta>

            <many-to-one name="localeDbvo"
                class="com.quinstreet.persistence.l10n.LocaleDBVO" column="localeGuid"
                not-null="true" foreign-key="FK_PRD_CATEGORY_MASTER_L10N_LOCALE"
                cascade="none">
                <meta attribute="property-type">com.quinstreet.persistence.l10n.LocaleDBVO
                </meta>
                <meta attribute="use-in-equals">true</meta>
            </many-to-one>
            <many-to-one name="realmDbvo"
                class="com.quinstreet.persistence.context.RealmDBVO" column="realmGuid"
                not-null="true" foreign-key="FK_PRD_CATEGORY_MASTER_L10N_REALM"
                cascade="none">
                <meta attribute="property-type">com.quinstreet.persistence.context.RealmDBVO
                </meta>
                <meta attribute="use-in-equals">true</meta>
            </many-to-one>

            <property name="categoryName" type="string" />

        </composite-element>

    </idbag>

</class>

Ошибка, которую я получаю:

org.springframework.orm.hibernate3.HibernateSystemException: незаконный доступ к загрузке коллекции;вложенным исключением является org.hibernate.LazyInitializationException: недопустимый доступ к загрузке коллекции

в браузере. Я получаю сообщение об ошибке: org.apache.jasper.JasperException: org.springframework.orm.hibernate3.HibernateSystemException: коллекция не связана слюбая сессия;Вложенное исключение - org.hibernate.HibernateException: коллекция не связана ни с одним сеансом org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:541)

Я должен петь hibernatetemplate как:

public List<CategoryMasterDBVO> getAllMainCategories() {
return getHibernateTemplate().loadAll(CategoryMasterDBVO.class);
}

Пожалуйста, совет.

Спасибо

Ответы [ 3 ]

2 голосов
/ 08 февраля 2012

эта ошибка выдается, когда вы загружаете объект с отложенной коллекцией, закрываете сеанс и затем получаете доступ к коллекции. Либо стремитесь получить коллекцию (SetFetchMode()), либо оставьте сеанс открытым

0 голосов
/ 30 августа 2014

Мой опыт этой ошибки был связан с тем, как я настраивал управление транзакциями в файле конфигурации, когда добавлялась необходимая конфигурация, которая была @EnableTransactionManagement, проблема была исправлена ​​

0 голосов
/ 11 февраля 2012

наконец-то следующая ссылка помогла ... http://forum.springsource.org/archive/index.php/t-20426.html

Я изменил метод hashcode (), чтобы специально включать поля класса, которые всегда выбираются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...