Spring Boot-java.lang.ClassNotFoundException:org.hibernate.engine.transaction.spi.TransactionContext
我是新来的弹簧靴。我正在尝试使用Hibernate制作一个web应用程序,但遇到了这些错误。我看了看类似的问题,但找不到解决办法。我怎样才能解决它 2016-12-19 18:56:39.328信息143744---[主页] org.hibernate.Version:hh000412:hibernate核心 {5.0.11.最终版本} java.lang.ClassNotFoundException: org.hibernate.engine.transaction.spi.TransactionContext位于 java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~(na:1.8.091]at loadClass(ClassLoader.java:424)~[na:1.8.091] 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~(na:1.8.091]at loadClass(ClassLoader.java:357)~[na:1.8.091] 在 org.springframework.orm.hibernate4.HibernateTransactionManager.isSameConnectionForEntireSession(HibernateTransactionManager.java:711) ~[spring-orm-4.3.4.RELEASE.jar:4.3.4.RELEASE]位于 org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:445) ~[spring-orm-4.3.4.RELEASE.jar:4.3.4.RELEASE]位于 org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) ~[spring-tx-4.3.4.释放。震击器:4.3.4.释放]位于 org.springframework.transaction.interceptor.TransactionSpectSupport.createTransactionIfEssential(TransactionSpectSupport.java:447) ~[spring-tx-4.3.4.释放。震击器:4.3.4.释放]位于 org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:277) ~[spring-tx-4.3.4.释放。震击器:4.3.4.释放]位于 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.4.释放。震击器:4.3.4.释放]位于 org.springframework.aop.framework.ReflectiveMethodInvocation.procement(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.4.RELEASE.jar:4.3.4.RELEASE]at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.4.RELEASE.jar:4.3.4.RELEASE]at com.sun.proxy.$Proxy77.listPosts(未知源)~[na:na]位于 com.monat.service.PostServiceImpl.listPosts(PostServiceImpl.java:24) ~[classes/:na]at com.monat.controller.PostController.list(PostController.java:20) ~[classes/:na] 我的pom.xml依赖项Spring Boot-java.lang.ClassNotFoundException:org.hibernate.engine.transaction.spi.TransactionContext,hibernate,spring-boot,spring-data,Hibernate,Spring Boot,Spring Data,我是新来的弹簧靴。我正在尝试使用Hibernate制作一个web应用程序,但遇到了这些错误。我看了看类似的问题,但找不到解决办法。我怎样才能解决它 2016-12-19 18:56:39.328信息143744---[主页] org.hibernate.Version:hh000412:hibernate核心 {5.0.11.最终版本} java.lang.ClassNotFoundException: org.hibernate.engine.transaction.spi.Transacti
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
我的服务班
@Service
public class PostServiceImpl implements PostService{
@Autowired
PostDao postDao;
@Override
public List<Post> listPosts() {
return postDao.listPosts();
}
}
@服务
公共类PostServiceImpl实现PostService{
@自动连线
PostDao PostDao;
@凌驾
公开名单{
返回postDao.listPosts();
}
}
我的存储库类
@Repository
public class PostDaoImpl implements PostDao{
@Autowired
private SessionFactory sessionFactory;
public PostDaoImpl(){}
public PostDaoImpl(SessionFactory sessionFactory){
this.sessionFactory=sessionFactory;
}
@Override
@Transactional
public List<Post> listPosts() {
@SuppressWarnings("unchecked")
List<Post> listPost2 = (List<Post>) sessionFactory.getCurrentSession().createQuery("from Post");
return listPost2;
}
}
@存储库
公共类PostDaoImpl实现PostDao{
@自动连线
私人会话工厂会话工厂;
公共PostDaoImpl(){}
公共PostDaoImpl(SessionFactory SessionFactory){
this.sessionFactory=sessionFactory;
}
@凌驾
@交易的
公开名单{
@抑制警告(“未选中”)
List listPost2=(List)sessionFactory.getCurrentSession().createQuery(“来自Post”);
返回listPost2;
}
}
尝试将这些依赖项添加到pom的依赖项部分,并重建项目:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
org.hibernate
冬眠核心
org.hibernate
休眠实体管理器
我已经解决了。我已经把这个部分从我的配置类中删除了,它已经解决了
@Bean
public HibernateTransactionManager transactionManager() {
HibernateTransactionManager transactionManager =
new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
通常使用spring引导和hibernate构建
sessionFactory
。因此,您不需要transactionManager
bean
因此,请从DBConfiguration
中删除此部分:
@Bean
public HibernateTransactionManager transactionManager() {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
}
@Bean
public HibernateTransactionManager transactionManager() {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
}