Привет, у меня есть небольшая настройка загрузки Spring и проблемы с доступом к моей базе данных.Spring Boot Setup: org.hibernate.HibernateException: No CurrentSessionContext настроен
Это мой установки, начиная с контроллера:
@Controller
@RequestMapping("/myproject/users")
public class UserController {
private static Logger logger = LoggerFactory
.getLogger("UserController.class");
private UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
....
Это мой DAO он расширяет абстрактный DAO со всеми методами CRUD:
@Repository
@Transactional
public class UserDaoImpl<T> extends AbstractDAO<User, Integer> implements
UserDao {
@Autowired
public UserDaoImpl(SessionFactory sessionFactory) {
super(sessionFactory);
}
protected Class<User> getEntityClass() {
return User.class;
}
public User getUserByMail(String email) {
User result = null;
Criteria criteria = getCriteria();
criteria.add(Restrictions.eq("email", email));
if (criteria.uniqueResult() != null) {
result = (User) criteria.uniqueResult();
}
return result;
}
protected final Session getCurrentSession() {
return this.sessionFactory.getCurrentSession();
}
.....
И, наконец, обслуживание:
@Component
@Transactional
public class UserServiceImpl implements UserService {
private UserDao userDao;
@Autowired
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
public List<User> getAllUsers() {
return this.userDao.findAll();
}
....
Вот мои настройки приложения:
spring.datasource.url=jdbc:mysql://10.0.0.15:3306/schema
spring.datasource.username=test
spring.datasource.password=test
# Hibernate
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
# Tomcat
server.port = 9080
И это мой Application.java:
@Configuration
@ComponentScan({"core", "controller"})
@EnableAutoConfiguration
public class Application
{
public static void main(String[] args) {
....
}
@Bean
public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) {
return hemf.getSessionFactory();
}
....
Моя проблема сейчас, что SessionFactory правильно построен, все бобы загружены, но когда мой DAO пытается получить доступ к базе данных я получаю исключение :
«org.hibernate.HibernateException: нет CurrentSessionContext не настроен»
Я искал на Stackoverflow очень много, и выяснили, что проблема заключается в том, что весна не в состоянии открыть CurrentSessionContext. Я могу сделать это вручную, но мне нужна Spring-Boot для обработки моих транзакций. Кто-нибудь признает мою ошибку в настройке?
Я уже пытался придерживаться этого решения: Stackoverflow
Спасибо большое!
Добро пожаловать на переполнение стека! Пожалуйста, рассмотрите возможность редактирования сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. Если объяснение приведено в ссылке, пожалуйста, укажите соответствующие разделы в своем ответе здесь. – SuperBiasedMan