分享web开发知识

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

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

Hibernate对象的状态

发布时间:2023-09-06 01:45责任编辑:傅花花关键词:Hibernate

一个测试hibernate对象保存的实例:

 ???@Test ???public void testSavePerson(){ ???????Session session = sessionFactory.openSession(); ???????Transaction transaction = session.beginTransaction(); ???????????????Person person = new Person(); ???????person.setPname("小丽"); ???????person.setPsex("女"); ???????????????/** ????????* 参数必须持久化对象 ????????*/ ???????session.save(person); ???????????????transaction.commit(); ???????session.close(); ???} ??

1.Person person = new Person(); //在内存中创建一个person对象
2.person.setPname("小丽"); ???//给person对象赋值
3.person.setPsex("女");         //给person对象赋值
4.session.save(person); ?????????????//将person移动到hibernatequy区域、
5.transaction.commit(); ?????????????//发送sql语句,提交事件,发生完第五步后,person存入到数据库中
6.session.close(); ??????????????????//关闭数据库和hibernate的链路
1、2、3步的对象为临时对象,经过session。save()person对象变为持久化状态的对象,4、5是持久化状态(托管状态对象)。6是脱管状态对象
临时状态对象和脱管状态对象的区别:
两个本质一样,但是脱管状态对象曾经与数据库交互过。只有处于持久化状态时hibernate才管。

session.save()、session.update()、session.get()可以把一个临时状态的对象转换成一个持久化状态对象。

session.clear()将session中的对象从session中清空。从持久化状态转为脱管状态。

session.evict(person)把某一个对象从session中清空

一个对象是否是持久化对象是针对某一个session而言的。

Hibernate对象的状态

原文地址:https://www.cnblogs.com/bendoudou/p/8547505.html

知识推荐

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