请各位高人帮忙解释解释 hibernate中php session的用法法 ,意义,还有具体作用?

Hibernate中Session的操作解释_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Hibernate中Session的操作解释
上传于||文档简介
&&H​i​b​e​r​n​a​t​e​中​S​e​s​s​i​o​n​的​操​作​解​释
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢Session session =& getSession();&&&&&&&& session.beginTransaction();&&&&&&&& Query query = session.createQuery("update Useraccount set meeting=meeting+1,useMeeting=useMeeting-1 where userId=(select userId from Signup where id="+signupID+") and chargesbasis=(select a.chargesbasis& from Signup as s,Activities as a where s.id="+signupID+" and s.activitiesId=a.id)");&&&&&&&& query.executeUpdate();&&&&&&&& query=session.createQuery("delete from Signup where id="+signupID);&&&&&&&& query.executeUpdate();&&&&&&&& session.beginTransaction().commit();&&&&&&&& if(session!=null){&&&&&&&&&&&& session.close();&&&&&&&& }很简单的哈
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区         
您现在的位置:&&>&&>&&>&&>&&>&正文
HibernateSession中的flush方法的作用
来源:()  【】 
  Hibernate Session中的 flush方法的作用:  session flush方法主要做了两件事:  * 清理缓存  * 执行sql  session在什么情况下执行flush  * 默认在事务提交时  * 显示的调用flush  * 在执行查询前,如:iterate  /**  * 测试uuid主键生成策略  */  public void testSave1() {  Session session =  Transaction tx =  try {  session = HibernateUtils.getSession();  tx = session.beginTransaction();  User1 user = new User1();  user.setName("李四");  user.setPassword("123");  user.setCreateTime(new Date());  user.setExpireTime(new Date());  //因为user的主键生成策略采用的是uuid,所以调用完成save后,只是将user纳入到了session的管理  //不会发出insert语句,但是id已经生成,session中existsInDatebase状态为false  session.save(user);  //调用flush,hibernate会清理缓存,执行sql  //如果数据库的隔离级别设置为为提交读,那么我们可以看到flush过的数据  //并且session中existsInDatebase状态为true  session.flush();  //提交事务  //默认情况下commit操作会先执行flush清理缓存,所以不用显示的调用flush  //commit后数据是无法回滚的  tx.commit();  }catch(Exception e) {  e.printStackTrace();  tx.rollback();  }finally {  HibernateUtils.closeSession(session);  }  }  /**  * 测试native主键生成策略  */  public void testSave2() {  Session session =  Transaction tx =  try {  session = HibernateUtils.getSession();  tx = session.beginTransaction();  User2 user = new User2();  user.setName("张三1");  user.setPassword("123");  user.setCreateTime(new Date());  user.setExpireTime(new Date());  //因为user的主键生成策略为native,所以调用session.save后,将执行insert语句,返回有数据库生成的id  //纳入了session的管理,修改了session中existsInDatebase状态为true  //如果数据库的隔离级别设置为为提交读,那么我们可以看到save过的数据  session.save(user);  tx.commit();  }catch(Exception e) {  e.printStackTrace();  tx.rollback();  }finally {  HibernateUtils.closeSession(session);  }  }  /**  * 测试uuid主键生成策略  */  public void testSave3() {  Session session =  Transaction tx =  try {  session = HibernateUtils.getSession();  tx = session.beginTransaction();  User1 user = new User1();  user.setName("王五");  user.setPassword("123");  user.setCreateTime(new Date());  user.setExpireTime(new Date());  //因为user的主键生成侧路采用的是uuid,所以调用完成save后,只是将user纳入到了session的管理  //不会发出insert语句,但是id已经生成,session中existsInDatebase状态为false  session.save(user);  //将user对象从session中逐出,即session的EntityEntries属性中逐出  session.evict(user);  //无法成功提交,因为hibernate在清理缓存时,在session的insertions集合中取出user对象进行insert操作后  //需要更新entityEntries属性中的existsInDatabase为true,而我们采用evict已经将user从session的entityEntries  //中逐出了,所以找不到相关数据,无法更新,抛出异常  tx.commit();  }catch(Exception e) {  e.printStackTrace();  tx.rollback();  }finally {  HibernateUtils.closeSession(session);  }  }  /**  * 测试uuid主键生成策略  */  public void testSave4() {  Session session =  Transaction tx =  try {  session = HibernateUtils.getSession();  tx = session.beginTransaction();  User1 user = new User1();  user.setName("王五");  user.setPassword("123");  user.setCreateTime(new Date());  user.setExpireTime(new Date());  //因为user的主键生成侧路采用的是uuid,所以调用完成save后,考试吧提示只是将user纳入到了session的管理  //不会发出insert语句,但是id已经生成,session中existsInDatebase状态为false  session.save(user);  //flush后hibernate会清理缓存,会将user对象保存到数据库中,将session中的insertions中的user对象  //清除,并且设置session中existsInDatebase的状态为true  session.flush();  //将user对象从session中逐出,即session的EntityEntries属性中逐出  session.evict(user);  //可以成功提交,因为hibernate在清理缓存时,在session的insertions集合中无法找到user对象  //所以就不会发出insert语句,也不会更新session中的existsInDatabase的状态  tx.commit();  }catch(Exception e) {  e.printStackTrace();  tx.rollback();  }finally {  HibernateUtils.closeSession(session);  }  }  /**  * 测试native主键生成策略  */  public void testSave5() {  Session session =  Transaction tx =  try {  session = HibernateUtils.getSession();  tx = session.beginTransaction();  User2 user = new User2();  user.setName("张三11");  user.setPassword("123");  user.setCreateTime(new Date());  user.setExpireTime(new Date());  //因为user的主键生成策略为native,所以调用session.save后,将执行insert语句,返回有数据库生成的id  //纳入了session的管理,修改了session中existsInDatebase状态为true  //如果数据库的隔离级别设置为为提交读,考试吧提示可以看到save过的数据  session.save(user);  //将user对象从session中逐出,即session的EntityEntries属性中逐出  session.evict(user);  //可以成功提交,因为hibernate在清理缓存时,在session的insertions集合中无法找到user对象  //所以就不会发出insert语句,也不会更新session中的existsInDatabase的状态  tx.commit();  }catch(Exception e) {  e.printStackTrace();  tx.rollback();  }finally {  HibernateUtils.closeSession(session);  }  }1&&&
文章责编:gaoxiaoliang& 看了本文的网友还看了
?&&( 15:51:47)?&&( 14:16:20)?&&( 14:14:40)?&&( 14:13:00)?&&( 14:10:55)?&&( 14:02:35)
? ?   ? ?   ? ?   ? ?   ? ?
? ?   ? ?   ?
?   ? ?    ? ?   ? ?   ? ?   ? ?
? ?   ? ?
实用工具 |
| 大全 | 大全
     |
版权声明:如果网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本内容,请注明出处。
Copyright & 2004-
 网 All Rights Reserved 
中国科学院研究生院权威支持(北京) 电 话:010- 传 真:010-Hibernate中的session.clear(),save(),和flush()的理解?_百度知道
Hibernate中的session.clear(),save(),和flush()的理解?
User user = new User(););
tx.clear();
user?我的主键策略是indentity?添加了sess.setAge(20).clear();不是把user存入缓存吗.save(user);
sess.close().在网上看了很多人都说这样的代码令狐冲&quot,代码如下?
清空了为什么这样还能把记录添加进数据去;问题;sess.evict(user),但是我的就执行的很顺利?
2,不知道具体是怎样的.commit();
user.sess.save(user);
userUser是一个持久化类.save(user):1;
会抛异常;不是清空缓存吗.clear().setPass(&或者1434&).setName(&quot
提问者采纳
clear() .save(user),是要看你的FlushMode是怎么设置的。清空缓存是在持久化之后进行的。至于你说的抛异常;的意思是将user持久化,要具体看是抛出什么异常了、删除的和修改的数据起作用。close() 。flush():Completely clear the session,也就是说把数据插入到数据库中。但是不一定非得关闭session:End the session by releasing the JDBC connection and cleaning up。flush必须在一个操作单元结束之后且在提交事务和关闭连接之前被调用.强制刷新流的缓冲.释放并清空JDBC连接hibernate最新发布包的javadoc里对这三个方法的解释是,不涉及查询的结果。至于要不要清空缓存,该清空操作只对于要保存的: Force this session to flush。=========================================sess。例如插入一条数据.清空session
提问者评价
你真棒,学习了
clear 清空缓存中对象; sava 将缓存中的对象持久化 保存到数据库 flush 刷新缓存
其他类似问题
为您推荐:
其他3条回答
hibernate清理缓存时更新数据到数据库的,也就是说提交事务的。
你写的不是缓存,save()方法在clear()前面,,,
save()方法在clear()前面 当然可以添加进去啊
hibernate的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 php session的用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信