Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring + Hibernate = lazy exception, Проблемы с закрытой сессией. 
:(
    Опции темы
vady
  Дата 9.8.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



   Возникает lazy exception. 
Получаю класс А, обращаюсь к полю, которое связано с классом В и получаю exception.
Использую HibernateDaoSupport. 
На сколько я понял, то нужно настроить HibernateInterceptor, но не мойму, как...
Standalone приложение.


Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <!-- DataSource -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost/megashop</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value>root</value></property>
    </bean>
    <!--***************************************************************************** -->


    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource"><ref local="dataSource"/></property>
        <property name="mappingResources">
            <list>
                <value>User.hbm.xml</value>
                <value>Category.hbm.xml</value>
                <value>Product.hbm.xml</value>
                <value>Order.hbm.xml</value>
                <value>OrderLine.hbm.xml</value>
                <!-- Add list of .hbm.xml files here -->
            </list>
        </property>
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
          <!--  <prop key="hibernate.hbm2ddl.auto">update</prop>-->
            <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>
        </props>
        </property>
    </bean>
    <!--***************************************************************************** -->


    <!-- Hibernate transaction manager  ************************************* -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>
    <!--***************************************************************************** -->

     <bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor">
         <property name="sessionFactory">
           <ref bean="sessionFactory"/>
         </property>
    </bean>

    <bean id="productManager" class="org.springframework.aop.framework.ProxyFactoryBean">
         <property name="target"><ref bean="productManagerTarget"/></property>
         <property name="proxyInterfaces">
           <value>com.vady.skeleton.service.ProductManager</value>
         </property>
         <property name="interceptorNames">
           <list>
              <value>transactionManager</value>
           </list>
         </property>
     </bean>


    <!-- DAO beans     ************************************* -->
    <bean id="userDAO" class="com.vady.skeleton.dao.impl.HibernateUserDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="categoryDAO" class="com.vady.skeleton.dao.impl.HibernateCategoryDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="productDAO" class="com.vady.skeleton.dao.impl.HibernateProductDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="orderDAO" class="com.vady.skeleton.dao.impl.HibernateOrderDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!--***************************************************************************** -->


    <!-- Manager beans ************************************* -->
    <bean id="userManager" class="com.vady.skeleton.service.UserManagerImpl">
        <property name="dao" ref="userDAO"/>
    </bean>

    <bean id="productManagerTarget" class="com.vady.skeleton.service.ProductManagerImpl">
        <property name="dao" ref="productDAO"/>
    </bean>


    <!--***************************************************************************** -->

</beans>


Код

package com.vady.skeleton.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.vady.skeleton.dao.ProductDAO;
import com.vady.skeleton.model.Product;

import java.util.List;


public class HibernateProductDAOImpl extends HibernateDaoSupport implements ProductDAO {

    public void createProduct(Product product) {
        getHibernateTemplate().saveOrUpdate(product);
    }

    public Product getProduct(long id) {
        return (Product) getHibernateTemplate().load(Product.class, id);
    }

    public List getProductList() {
        return getHibernateTemplate().find("from Product");
    }

    public void updateProduct(Product product) {
        getHibernateTemplate().update(product);
    }

    public void deleteProduct(long id) {
        Product product = getProduct(id);

        getHibernateTemplate().delete(product);
    }
}


Код

package com.vady.skeleton.service;


import com.vady.skeleton.model.Product;
import java.util.List;


public interface ProductManager {

    void createProduct(Product product);

    Product getProduct(long id);

    List getProductList();

    void updateProduct(Product product);

    void removeProduct(Product product);
}

PM MAIL   Вверх
tux
Дата 9.8.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



PM MAIL Skype GTalk Jabber YIM   Вверх
vady
Дата 10.8.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



   Сделал по совету "Карла".
   Всё равно возникает lazy exception.
Ниже applicationContext.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <!-- DataSource -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost/megashop</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value>root</value></property>
    </bean>
    <!--***************************************************************************** -->


    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource"><ref local="dataSource"/></property>
        <property name="mappingResources">
            <list>
                <value>User.hbm.xml</value>
                <value>Category.hbm.xml</value>
                <value>Product.hbm.xml</value>
                <value>Order.hbm.xml</value>
                <value>OrderLine.hbm.xml</value>
                <!-- Add list of .hbm.xml files here -->
            </list>
        </property>
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
          <!--  <prop key="hibernate.hbm2ddl.auto">update</prop>-->
        </props>
        </property>
    </bean>
    <!--***************************************************************************** -->


    <!-- Hibernate transaction manager  ************************************* -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory"/>
        </property>
    </bean>
    <!--***************************************************************************** -->

     <bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor">
         <property name="sessionFactory">
           <ref bean="sessionFactory"/>
         </property>
    </bean>

    <bean id="productManager" class="org.springframework.aop.framework.ProxyFactoryBean">
         <property name="target">
             <ref bean="productManagerTarget"/>
         </property>
         <property name="proxyInterfaces">
           <value>com.vady.skeleton.service.ProductManager</value>
         </property>
         <property name="interceptorNames">
           <list>
              <value>hibernateInterceptor</value>
           </list>
         </property>
     </bean>


    <!-- DAO beans     ************************************* -->
    <bean id="userDAO" class="com.vady.skeleton.dao.impl.HibernateUserDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="categoryDAO" class="com.vady.skeleton.dao.impl.HibernateCategoryDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="productDAO" class="com.vady.skeleton.dao.impl.HibernateProductDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <bean id="orderDAO" class="com.vady.skeleton.dao.impl.HibernateOrderDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!--***************************************************************************** -->


    <!-- Manager beans ************************************* -->
    <bean id="userManager" class="com.vady.skeleton.service.UserManagerImpl">
        <property name="dao" ref="userDAO"/>
    </bean>

    <bean id="productManagerTarget" class="com.vady.skeleton.service.ProductManagerImpl">
        <property name="dao" ref="productDAO"/>
    </bean>


    <!--***************************************************************************** -->


</beans>



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.