【Hibernate中创建Session(会话)接口的方法】教程文章相关的互联网学习教程文章

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

在<many-to-on>中这错误很常见,字面意义就是不能被初始化,因为session已经关闭了。简单理解就是因为,你使用了lazy=true,这样hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值得方法,在你使用getXXX()调用的时候,hiberante会利用这个保存的方法去从数据库中取数据。而往往我们在jsp页面中使用getXXX()准备展示数据的时候,session早已经在dao中就关闭了,我们该如何解决这种异常呢?简单的说...

org.springframework.orm.hibernate3.LocalSessionFactoryBean的疑惑解决办法【代码】

在项目中使用了SSH框架(Struts2 + Spring3+ Hibernate3),applicationContext中配置了sessionFactory<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"ref="dataSource"></property><property name="hibernateProperties"><props><prop key="hibernate.dialect" >org.hibernate.dialect.SQLServerDialect</prop><prop key="hibernate.jdbc.batch_size">20...

hibernate session.get(class,serialid) 方法为空值的原因?【代码】

package hibernate.test;import hibernate.test.pojo.Person;import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder;public class Test { public static void main(String[] args) {// TODO Auto-generated method stub C...

hibernate +spring sessionfactory 配置

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!--<property name="configLocation" value="hibernate.cfg.xml"></property>--> (3)<property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate....

org.hibernate.TransientObjectException: The instance was not associated with this session解决方法

出现这个异常的原因就是把一个瞬态对象当做持久化对象来操作了。解决的办法当然就是把对象持久化了,可以调用session的save() 或者saveOrUpdate()方法下面来科普一下hibernate在对象中的三种状态:简单的说一下就是这样子,1、当一个对象被new了以后此对象处于瞬时态(Transient);2、然后对此对象执行session的save() 或者saveOrUpdate()方法后,此对象被放入session的一级缓存进入持久态.2、当再对此对象执行evict()/close()/c...

hibernate--session的CRUD方法, delete, load,get,update【代码】

删除方法:新建的对象立马被删除@Testpublic void testDelete() {Teacher t = new Teacher();t.setName("t1");t.setTitle("middle");t.setBirthDate(new Date());Session session = sessionFactory.getCurrentSession();session.beginTransaction();session.save(t);System.out.println(t.getId());session.getTransaction().commit();Session session2 = sessionFactory.getCurrentSession();session2.beginTransaction();session2...

根据错误原理解决Hibernate运行出现No CurrentSessionContext configured!错误

(1)异常信息如下:严重: Servlet.service() for servlet action threw exception java.lang.RuntimeException: <u>No CurrentSessionContext configured!</u>at com.lc.utils.HibernateUtil.executeQuery(HibernateUtil.java:56)at com.lc.service.UsersService.checkUser(UsersService.java:22)at com.lc.struts.action.LoginAction.login(LoginAction.java:38)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)...

No Hibernate Session bound to thread, and configuration does not allow

今天晚上挺悲催的,遇到了这个问题花费我很长时间,现在总结如下:到这这种情况的发生有两种情况:1,没有配置事物只要在Spring配置文件中添加如下代码: <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <tx:annotation-driven transaction-manager="txManager"/>然后在DAO程序前面加上@Tr...

Hibernate框架使用 getCurrentSession()获取Session对象相关问题【图】

情况为:使用 getCurrentSession()方法(且配置了Session的生命周期与线程绑定)获取Session进行操作时,出现 Session is closed 异常,但使用openSession()方法没问题。详细代码情况和异常如下:解决:查完资料后得知:使用getCurrentSession()方法,进行事务提交(commit()方法)后,Hibernate框架会自动把Session缓存中的内容清空,并关闭。所以此时不需要再手动自行关闭,将 session.close()注释掉即可。原文:http://blog.51cto.com...

8 -- 深入使用Spring -- 8...2 管理Hibernate的SessionFactory【代码】

8.8.2 管理Hibernate的SessionFactory        当通过Hibernate进行持久层访问时,必须先获得SessionFactory对象,它是单个数据库映射关系编译后的内存镜像。在大部分情况下,一个Java EE应用对应一个数据库,即对应一个SessionFactory对象。        Spring 的IoC容器不仅能以声明式的方式配置SessionFactory实例,也可充分利用IoC容器的作用,为SessionFactory注入数据源引用。        XML : Spring配置文...

Hibernate Session的CRUD操作【代码】

使用Session里面的方法进行CRUD操作 (1) 增加 save 方法 (2) 查找 get 方法(根据id查) (3) 修改 update 方法 (4) 删除 delete 方法 1、增加/*** 增加操作*/publicvoid testCreate(){//找到src下名为hibernate.cfg.xml的配置文件,加载核心配置文件。Configuration cfg = new Configuration();cfg.configure();//创建SessionFactory对象,在核心配置文件中找到各个映射文件如User.hbm.xml。//一般一个项目只创建一个SessionFactor...

多表关联懒加载导致的org.hibernate.LazyInitializationException: could not initialize proxy - no Session

本来考虑的是懒加载,这样可以提高效率,不过由于时间紧急把懒加载改为急加载临时解决另一个办法是不适用hibernate的事务管理,用serlvet处理,参考https://www.jianshu.com/p/89520964f458有时间再弄原文:https://www.cnblogs.com/jnhs/p/11444739.html

Hibernate 深入Session【代码】【图】

session概述Session 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载Java 对象的方法.session的产生方式session的产生方法一session的产生方法二 配置hibernate.cfg.xml文件 测试session的产生方式 package cn.itcast.hibernate0909.session;import java.lang.annotation.Target;import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate....

Hibernate Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分别是做什么的?有什么区别?

session的方法:save(): insert调用save方法之后,瞬时态对象可以变成持久态;update():update将游离态对象变为持久态saveOrUpdate():insert or update merge():merge()方法可以完成save()和update()方法的功能,它的意图是将新的状态合并到已有的持久化对象上或创建新的持久化对象。将游离态对象变为持久态。lock():lock()方法是把一个没有更改过的脱管状态的对象变成持久状态。persisit():persist()方法保证当它在一个事务外部被...

【hibernate初探】之接口说明,session使用【图】

hibernate作为一个完整的ORM映射框架,通过配置即可以让我们从复杂的JDBC操作中脱离出来。hibernate封装了 JDBC,JTA(java transaction API) 和JNDI。hibernate 是一个轻量级的框架,对于开发人员,可以采用它提供的接口进行数据库操作,当然也可以直接绕过hibernate,采用原生JDBC操作。而且当与Spring整合之后,Spring也提供了jdbcTemplate 。所以,使用者最好区分到底用谁的。1:hibernate主要接口 根据图示:configration中获取到...