分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

hibernate之三种时态之间的转换

发布时间:2023-09-06 01:25责任编辑:顾先生关键词:暂无标签

判断状态的标准

  oid  和    session相关性

public class HibernateUtils {private static SessionFactory sessionFactory=null;static{//获取config ?加载配置文件Configuration configure = new Configuration().configure();sessionFactory = configure.buildSessionFactory();}//获取sessionpublic static Session getSession(){Session session = sessionFactory.openSession();return session;}}

瞬时态

  瞬时态------持久态

  save和saveOrUpdata操作

@Test//瞬时态转化为持久态public void test02(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();//处于游离态 ?没有oid ?与session无关 User user=new User("zhangsan111","123456789","zhangfei","1064705527@qq.com","15029021367",new Date(),"M",1,"0");session.save(user);//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)ts.commit();session.close();}

  瞬时态------游离态  只需要给一个oid (主键生成策略进行了限定  这样我们只能通过持久态进行转换)

@Test//瞬时态转化为游离态态public void test02(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();//处于游离态 ?没有oid ?与session无关 User user=new User("zhangsan111","123456789","zhangfei","1064705527@qq.com","15029021367",new Date(),"M",1,"0");session.save(user);//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)ts.commit();session.close();System.out.println(user.getUid());//处于游离态 ?有oid ?session关闭}

持久态

  持久态----瞬时态  delete操作

  

@Test//持久态转化为瞬时态public void test03(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();User u=session.get(User.class,"402898a45fcec558015fcec55d5c0000");//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)System.out.println(u);session.delete(u);ts.commit();session.close();}

  持久态----游离态   close(关闭session)  clear 清除一级缓存(session)   evict清除以及缓存(指定的缓存) 

@Test//持久态转化为游离态public void test03(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();User u=session.get(User.class,"987e21997c134dc4b6538010d101bcef");//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)ts.commit();session.close();System.out.println(u);//此时为游离态 ?有oid ?session关闭}

游离态

  游离态----持久态

@Test//游离态转化为持久态public void test04(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();User u=session.get(User.class,"12");//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)ts.commit();session.close();u.setUsername("123456");//游离态Session session1 = HibernateUtils.getSession();//开启事务Transaction ts1 = session1.beginTransaction();session1.update(u);//持久态ts1.commit();session1.close();}

  游离态----瞬时态

@Test//游离态转化为瞬时态public void test04(){//获取连接Session session = HibernateUtils.getSession();//开启事务Transaction ts = session.beginTransaction();User u=session.get(User.class,"12");//处于持久态 ?与session有关 ?有oid ??(瞬时态转化为持久态)ts.commit();session.close();u.setUsername("123456");//游离态Session session1 = HibernateUtils.getSession();//开启事务Transaction ts1 = session1.beginTransaction();session1.delete(u);//瞬时态ts1.commit();session1.close();}

  

hibernate之三种时态之间的转换

原文地址:http://www.cnblogs.com/fjkgrbk/p/hibernate_state.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved