最基础用法:
@Test
public void testUpdate1(){
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
Teacher t = (Teacher)session.get(Teacher.class, 1) ;
session.getTransaction().commit() ;
t.setName("zhanglaoshi") ;
Session session2 = sessionFactory.getCurrentSession() ;
session2.beginTransaction() ;
session2.update(t) ;
session2.getTransaction().commit() ;
}
同一个session范围内,当用get方法取得一个对象信息后,对该对象内容进行改变时,也会发生update效果,这是因为get方法取得对象为persisent状态,hibernate会自动进行session缓存(persisent状态才有)与数据库是否同步,否则更新。
@Test
public void testUpdate2(){
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
Teacher t = (Teacher)session.get(Teacher.class, 1) ;
t.setName("zhanglaoshi22") ;
session.getTransaction().commit() ;
}
以上更新数据库时,所有字段都进行更新,当某个字段存放内容很大,如一篇文章时候,还进行字段全部更行就会浪费很多资源了,因此我们可以用以下方法进行部分字段更改:
a)XML设定property标签的update属性,annotation设定@Column的updatable=false属性,这种方法一旦设定,该字段就在更新时候忽略掉,无法更新,不灵活。
b)使用XML中的dynamic-update,只能在同一个session中生效(
更新persisent状态对象才行)
<hibernate-mapping package="com.bjsxt.hibernate.vo" >
<class name="Student" dynamic-update="true">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
<property name="age"></property>
</class>
</hibernate-mapping>
c)使用HQL(建议)
分享到:
相关推荐
——————————————————————————————————————————————
《Spring技术内幕》学习笔记1——IoC容器体系结构 《Spring技术内幕》学习笔记2——IoC定位Bean定义资源 ...《Spring技术内幕》学习笔记6——IoC容器的高级特性 《Spring技术内幕》学习笔记7——AOP基础
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
STM32H743IIT6学习笔记04——移植LetterShell,演示工程源码下载链接
zigbee学习笔记2——添加自己的任务 网络层数据服务
Talend学习笔记2——mysql文件导入到HDFS
Allegro学习笔记之6——热风焊盘Allegro学习笔记之6——热风焊盘
学习笔记之——基于pytorch的FSRCNN 把我的代码上传了,后续有更正会更新这个代码
Solidworks学习笔记——随形变化.docxSolidworks学习笔记——随形变化.docxSolidworks学习笔记——随形变化.docxSolidworks学习笔记——随形变化.docxSolidworks学习笔记——随形变化.docxSolidworks学习笔记——...
个人网课学习笔记
python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf ...
Javascript高级编程学习笔记27——BOM1window对象1.docx
Spring.NET学习笔记22——整合WCF(应用篇) http://www.cnblogs.com/GoodHelper/archive/2010/05/15/SpringNet_Wcf.html
恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记4——ADC.pdf
hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记
刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html
刘冬编写的Spring.NET学习笔记26——整合NVelocity例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_NVelocity.html
刘冬编写的Spring.NET学习笔记21——整合WebService的例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/19/SpringNet_WebService.html