Всем привет, я попытался создать проект в котором можно создать себе аккаунт и потом усуществлять все возможные операции 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
Сделайте примерно вот так в 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&characterEncoding=UTF-8&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;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости