社区
Web 开发
帖子详情
关于hibernate问题
效林少爷
2010-06-01 08:59:58
最近在学习hibernate,对于hibernate的状态周期,看了很多资料,觉得很简单,但是好像又没有掌握好
求对状态周期的总结的资料
...全文
171
4
打赏
收藏
关于hibernate问题
最近在学习hibernate,对于hibernate的状态周期,看了很多资料,觉得很简单,但是好像又没有掌握好 求对状态周期的总结的资料
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wo28lf
2010-06-01
打赏
举报
回复
学习一下
Ade子夜
2010-06-01
打赏
举报
回复
[Quote=引用 1 楼 bb12152205gg 的回复:]
我这有个自己的总结,希望能帮到你
1.状态周期
①瞬时状态对象(Transient Objects)
使用new操作符初始化的对象不是立刻就持久的.它们的状态时瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所应用),它们的状态将会丢失,并有垃圾回收机制回收
②持久化状态对象(Persist Objects)
持久实例是任何具有数据库标……
[/Quote]
大家一起学习!!!
扁鵲東南飛
2010-06-01
打赏
举报
回复
[Quote=引用 1 楼 bb12152205gg 的回复:]
我这有个自己的总结,希望能帮到你
1.状态周期
①瞬时状态对象(Transient Objects)
使用new操作符初始化的对象不是立刻就持久的.它们的状态时瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所应用),它们的状态将会丢失,并有垃圾回收机制回收
②持久化状态对象(Persist Objects)
持久实例是任何具有数据库标……
[/Quote]
够详细。不错,来学习了,顺便帮楼主顶下帖子。
bb12152205gg
2010-06-01
打赏
举报
回复
我这有个自己的总结,希望能帮到你
1.状态周期
①瞬时状态对象(Transient Objects)
使用new操作符初始化的对象不是立刻就持久的.它们的状态时瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所应用),它们的状态将会丢失,并有垃圾回收机制回收
②持久化状态对象(Persist Objects)
持久实例是任何具有数据库标识的实例.它由持久化管理器Session统一管理,持久实例是在事务中进行操作的--它们的状态在事务结束时同数据库进行同步.
③离线状态对象(Detached Objects)
Session关闭之后,持久化对象就变为离线对象.离线表示这个对象不能再与数据库保持同步,它们不再受Hibernate管理
Transient对象与Detached对象:
相同点:都不被session管理
不同点:Transient对象,数据库没有与之对应的记录;Detached对象,数据库有与之对应的记录
//测试方法(瞬时到持久化)
public void testSave1(){
Session session = null;
Transaction tx = null;
User user = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
//Transient(瞬时)状态
user = new User();
user.setName("123");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//persistent(持久化)状态
session.save(user);
/*
* 由于目前处于persistent状态
* 当对象的属性发生改变的时候
* hibernate会自动和数据保持同步
* 也就是说,数据库保存的是"456"
*/
user.setName("456");
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
在控制台可以看到打印的sql语句:
Hibernate: insert into t_user
(name, password, createTime, expireTime, id)
values (?, ?, ?, ?, ?)
Hibernate: update t_user set name=?,
password=?, createTime=?, expireTime=?
where id=?
先insert,后面因为属性改变,所以又update
---
★
public class SessionTest extends TestCase {
//测试方法(瞬时到持久化到离线)
public void testSave2(){
Session session = null;
Transaction tx = null;
User user = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
//Transient(瞬时)状态
user = new User();
user.setName("123");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//persistent(持久化)状态
session.save(user);
/*
* 由于目前处于persistent状态
* 当对象的属性发生改变的时候
* hibernate会自动和数据保持同步
* 也就是说,数据库保存的是"456"
*/
user.setName("456");
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
//detached(离线)状态
user.setName("789");
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
//回到persistent(持久化)状态
session.update(user);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
你可以再控制台看到sql语句:
Hibernate: insert into t_user (name, password, createTime, expireTime, id)
values (?, ?, ?, ?, ?)
Hibernate: update t_user set name=?, password=?, createTime=?, expireTime=? where id=?
Hibernate: update t_user set name=?, password=?, createTime=?, expireTime=? where id=?
先insert,后面因为属性改变,所以又update,再后来,从离线状态回到持久化状态,并且属性改变,再次update
----------
实用代码脚本易语言源码图片组操作类
实用代码脚本易语言源码图片组操作类
升级版本基于多目标粒子群算法的微电网优化调度【风光、储能、柴油、燃气、电网交互】(Matlab代码实现)
内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及与主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理与调度方案优化。该模型能够有效平衡经济性与环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成与优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模与求解实践,帮助用户掌握MOPSO在实际工程
问题
中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例与技术支撑; 阅读建议:建议读者结合Matlab代码与理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析与结果可视化,并可通过调整能源配置或引入新约束进行二次开发与创新研究。
东北大学 人文选修 文物精品与中华文明 知识点整理(选择+填空)
东北大学 人文选修 文物精品与中华文明 知识点整理(选择+填空)
政府科技管理者如何利用科创数智大脑实现产业政策精准匹配?.docx
政府科技管理者如何利用科创数智大脑实现产业政策精准匹配?
作者用博文里的代码代码做出来的图
作者用博文里的代码代码做出来的图
Web 开发
81,111
社区成员
341,723
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章