Я новичок в Spring и Hibernate. Я получаю Нет сеанса для текущей проблемы с потоком. Я пробовал искать другую тему здесь, но не способен решить мою проблему.Ошибка обработки запроса; Вложенное исключение - org.hibernate.HibernateException: сеанс не найден для текущего потока
Возможно, мне недостает некоторой концепции. Пожалуйста, сделайте . Помогите понять, в чем причина и как разрешить и пожалуйста. игнорировать мое форматирование, я тоже новичок в stackoverflow. Спасибо в заранее.
hibernate.config.xml
<!-- Scan classpath for annotations (eg: @Service, @Repository etc) -->
<context:annotation-config/>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:database.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.shop.model"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
</bean>
<tx:annotation-driven proxy-target-class="true"
transaction-manager="txManager"/>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>
UserDaoImpl Класс
package com.shop.dao.impl;
@Repository
public class UserDaoImpl implements IUserDao {
private static final Logger LOG =
Logger.getLogger(UserDaoImpl.class);
@Autowired
private SessionFactory sessionFactory;
@Override
public boolean checkUser(String email, String password) {
boolean userFound = false;
String hql = "from UserInfo where email =? and password=?";
LOG.info(sessionFactory.getCurrentSession().createQuery(hql));
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setParameter(0, email);
query.setParameter(1, password);
List userList = query.list();
if ((userList != null) && (userList.size() 0)){
userFound = true;
}
return userFound;
}
}
спасибо .... это означает, что каждый раз приходится открывать и закрывать сеанс, как я знаю, контейнер обрабатывает это для нас неявно. Другим способом является<свойство \t \t name = "sessionFactory" ref = "sessionFactory" /> 'Настройка этого параметра в спящем режиме. config.xml работает правильно, и не нужно открывать и закрывать ресурсы. он отлично работает с тем же кодом. Мне просто нужно сделать аннотацию. Пожалуйста, поправьте меня, где я ошибаюсь. –