gpt4 book ai didi

spring-boot - Spring Boot 安装程序 : org. hibernate.HibernateException:未配置 CurrentSessionContext

转载 作者:行者123 更新时间:2023-12-02 01:01:31 24 4
gpt4 key购买 nike

你好,我有一个小的 Spring Boot 设置和访问我的数据库的问题。

这是我从 Controller 开始的设置:

@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,他用所有 CRUD 方法扩展了一个抽象 DAO:

@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 已正确构建,所有 bean 都已加载,但是当我的 DAO 尝试访问数据库时,出现异常:

'org.hibernate.HibernateException: 没有配置 CurrentSessionContext'

我在 Stackoverflow 上搜索了很多,发现问题是 Spring 无法打开 CurrentSessionContext。我可以手动执行此操作,但我希望 Spring-Boot 处理我的事务。有没有人认识到我在设置中的错误?

我已经尝试坚持这个解决方案:Stackoverflow

非常感谢!

最佳答案

将以下内容添加到我的应用程序设置中对我有用:

spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext

引用以下内容:No CurrentSessionContext configured

关于spring-boot - Spring Boot 安装程序 : org. hibernate.HibernateException:未配置 CurrentSessionContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28049831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com