今天在测试的时候遇到了org.hibernate.HibernateException: No CurrentSessionContext configured!错误。。。找了半天,在百度上才发现是什么原因。。。
初学hibernate,出现No CurrentSessionContext configured错误,检查了几次配置都没有发现问题,最后上网查找发现是配置文件的问题
解决如下:
在集成Hibernate的环境下(例如Jboss),在hibernate.cfg.xml中session-factory段加入:
<property name="current_session_context_class">jta</property>
在不集成Hibernate的环境下(例如使用JDBC的独立应用程序),在hibernate.cfg.xml中session-factory段加入:
<property name="current_session_context_class">thread</property>
加入了这句话什么测试类就可以运行了。。。。哎,这个错误我来记录下
package org.huawei.hibernate.junit;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.huawei.hibernate.Teacher;
import org.huawei.hibernate.zhicheng;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @作者: 何枫
* @日期: 2011-4-10下午11:57:04
* @版本: V 1.0
* @标题: SaveTest.java
* @包名: org.huawei.hibernate.junit
* @描述: TODO(用一句话描述该文件做什么)
*/
public class SaveTest {
private static SessionFactory sessionFactory;
@BeforeClass
public static void beforeClass() {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}
@AfterClass
public static void afterClass() {
sessionFactory.close();
}
@Test
public void testSaveWith3State() {
Teacher t = new Teacher();
t.setName("何枫");
t.setTitle("middle");
t.setZhicheng(zhicheng.A);
//t.setBirthDate(new Date());
t.setDate(new Date());
//Session session = sessionFactory.openSession();
/*
* 在使用sessionFactory.getCurrentSession()是必须在hibernate的配置文件中加入
* <property name="current_session_context_class">thread</property>
*/
/**
* openSession与getCurrentSession的区别是:
* openSession每次都是新的,需要close
* getCurrentSession从上下文找,如果有,用旧的,如果没有,建新的
* 1.用途,界定事务边界
* 2.事务提交自动close
*/
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(t);
System.out.println(t.getId());
session.getTransaction().commit();
//session.clear();
System.out.println(t.getId());
}
public static void main(String[] args) {
beforeClass();
}
}
终于搞定了.学习软件开发是需要日积月累的。。。。更应正了一句最经典的话,,程序员是在错误中长大的!
分享到:
相关推荐
然而,在使用 Hibernate 进行数据库操作时,经常会遇到 "No Hibernate Session bound to thread" 的错误信息。本文将详细介绍该错误的解决方案。 错误原因 "No Hibernate Session bound to thread" 错误信息通常是...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/...
Caused by: org.hibernate.HibernateException: Could not instantiate connection provider [org.hibernate.connection.C3P0ConnectionProvider] at org.hibernate.engine.jdbc.connections.internal....
3. org.hibernate.HibernateException: No CurrentSessionContext configured! 该异常的解决方法是添加 hibernate-jpa-2.0-api-1.0.0.Final.jar。这是因为 Hibernate 需要配置 CurrentSessionContext,以便正确地...
query.setHint("org.hibernate.fetchSize", 20); // 设置查询结果集大小 query.setFetchSize(20); List<Game> games = query.list(); tx.commit(); } catch (HibernateException e) { if (tx != null) { tx....
3. `org.hibernate.HibernateException`:Hibernate抛出的异常类。 4. `org.hibernate.Query`和`org.hibernate Criteria`:用于执行HQL(Hibernate Query Language)和Criteria API查询,比直接使用SQL更加灵活。 ...
由于项目需求的需要,我们引入了连接池。...我们采用了Hibernate,所以可以考虑hibernate自带的连接池机制,但是发现效率不高,而且Hibernate也推荐使用c3p0或Proxool连接池,在我们的项目中采用了Proxool
throw new HibernateException("No CurrentSessionContext configured!"); } return currentSessionContext.currentSession(); } 在 getCurrentSession() 方法中,SessionFactoryImpl 将获取 Session 的工作委托...
错误表现:在初始化SessionFactory时,可能出现“org.hibernate.HibernateException: Could not instantiate dialect class”等异常,这通常是因为Hibernate配置文件中的dialect设置不正确或对应的JDBC驱动未引入。...
2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在transcation.isActive()条件下才能执行, 可以解决办法是:当方法不需要事务支持的时候,使用 Session ...
18. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 19. <property name="dataSource" ref="dataSource" /> 20. <property name="hibernateProperties"> 21. <props> 22...
"GeneratingArtifacts" org.hibernate.HibernateException: ProxoolProvider unable to load JAXP configurator file: proxool_mysql.xml ``` **解析:** 这个错误提示表明,在使用Proxool作为连接池提供者时,...
throw new HibernateException( "No CurrentSessionContext configured!" ); } return currentSessionContext.currentSession(); } 从上面的代码可以看到,getCurrentSession 方法将获得 Session 对象的工作委托...
5. 异常处理:Hibernate将SQL异常转换为特定的HibernateException,便于理解和处理。 总之,Hibernate 5.4.25为Java开发者提供了强大的数据持久化解决方案,通过合理的jar包配置和应用,可以极大地提升开发效率,...
错误八:Exception in thread "main" org.hibernate.HibernateException: More than one row with the given identifier was found: 1, for class: org.model.User 错误原因:这个错误表示在尝试获取主键为1的实体...
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; /** * Configures and provides access to Hibernate sessions, tied to the * current ...
5. 异常体系:理解Hibernate的异常体系,如HibernateException、ConstraintViolationException等。 6. Session和Transaction:理解Session的生命周期和事务管理,以及它们在实际应用中的最佳实践。 本章作为...