HibernateException: No Session found for current thread

268
22 августа 2017, 12:02

Всем привет, я попытался создать проект в котором можно создать себе аккаунт и потом усуществлять все возможные операции CRUD над класом Product который мапится на таблицу product. Но вот одна проблемка, security часть работает на ура, но вот КРАД часть приложения выдает ошибку HibernateException: No Session found for current thread. Помогите мне разобраться из-за чего она появилась, потому что я уже без вариантов. И @Transactional стоит в сервисе над всеми методами которые к дао обращаются и в хмл вроде все сделал как надо, а все равно мне выдает эту ошибку. Также если надо что-то уточнить, спрашивайте, с радостью отвечу.

Технологии которые я юзал: Spring Security|MVC, Hibernate, Postgresql, Maven, JSP
Ссылка на гит https://github.com/Dimassss/SpringSite/tree/my_site

Answer 1

Сделайте примерно вот так в mvc.xml настройке

<tx:annotation-driven transaction-manager="transactionalManagerLocalDb"/>
<bean id="dataSourceLocalDb" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver"/>
        <property name="url">
            <value>jdbc:postgresql://localhost:5432/abonents?useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8</value>
        </property>
        <property name="username" value="postgres"/>
        <property name="password" value="user"/>


<bean id="sessionFactoryLocalDb" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSourceLocalDb"/>
        <property name="packagesToScan" value="com.springapp.mvc.models_local_db"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.c3p0.acquire_increment">1</prop>
                <prop key="hibernate.c3p0.max_size">15</prop>
                <prop key="hibernate.c3p0.min_size">5</prop>
                <prop key="hibernate.c3p0.timeout">1800</prop>
                <prop key="hibernate.c3p0.max_statements">0</prop>
            </props>
        </property>
    </bean>
    <bean id="transactionalManagerLocalDb" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactoryLocalDb"/>
    </bean>

использование в java коде

@Autowired
    @Qualifier(value = "sessionFactoryLocalDb")
    SessionFactory sessionFactoryLocalDb;
 public Success onAdd(Abonent abonent){
        if(abonent!=null){  
                  sessionFactoryLocalDb.getCurrentSession().save(abonent);
       success.setResult(200);
            return success;
        }
        success.setResult(100);
        return success;
    }
READ ALSO
Геттеры, сеттеры и инкапсуляция

Геттеры, сеттеры и инкапсуляция

ОкейС самого первого знакомства с инкапсуляцией и её свойствами сокрытия данных, для меня остается непонятным один момент: поля класса, помеченные...

347
Как разделить строку по знаку через .split?

Как разделить строку по знаку через .split?

Пытаюсь разделить строку по пайпу, почитал, как это все делается, но не могу понять, что не такНе работает

227
javafx получения элемента из другого fxml и с методами другого котроллера

javafx получения элемента из другого fxml и с методами другого котроллера

ЗдравствуйтеПриложение имеет TabPane, имеем кнопку которая в TabPabe добавляет ещё один Tab, но этот Tab вместе с контентом не создаётся в контроллере...

234
Подключение файла в JAR через Netbeans

Подключение файла в JAR через Netbeans

Пользуюсь средой разработки NetBeansСобираю с помощью Ant

416