Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate

Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate

ID:40554631

大小:49.00 KB

页数:4页

时间:2019-08-04

Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第1页
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第2页
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第3页
Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate_第4页
资源描述:

《Hibernate更改部分字段hibernateupdate更改想更改的字段JavaHibernate》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate中如果直接使用 Session.update(Objecto); 会把这个表中的所有字段更新一遍。 比如:123456789101112publicclassTeacherTest{@Testpublicvoidupdate(){Sessionsession=HibernateUitl.getSessionFactory().getCurrentSession();session.beginTransaction();Teachert=(Teacher)session.get(Teacher.class,3);t

2、.setName("yangtb2");session.update(t); session.getTransaction().commit();}} Hibernate执行的SQL语句: 12345678910Hibernate:UPDATETeacherSETage=?,birthday=?,name=?,title=?WHEREid=? 我们只更改了Name属性,而Hibernate的sql语句把所有字段都更改了一次。 这样要是我们有字段是文本类型,这个类型存储的内容是几千,几万字,这样效率会很低。那么怎么只更改我们更新的字

3、段呢? 有三中方法: 1.XML中设置property标签update=“false”,如下:我们设置age这个属性在更改中不做更改   在Annotation中 在属性GET方法上加上@Column(updatable=false)1234@Column(updatable=false)publicintgetAge(){returnage;}  我们在执行Update方法会发现,age属性不会被更改 123456789Hibernate:

4、UPDATETeacherSETbirthday=?,name=?,title=?WHEREid=? 缺点:不灵活···· 2.第2种方法··使用XML中的dynamic-update=”true” <classname="com.sccin.entity.Student"table="student"dynamic-update="true">  OK,这样就不需要在字段上设置了。但这样的方法在Annotation中没有 3.第三种方式:使用HQL语句(灵活,方便) 使用HQL语句修改数据  1234567publi

5、cvoidupdate(){Sessionsession=HibernateUitl.getSessionFactory().getCurrentSession();session.beginTransaction();Queryquery=session.createQuery("updateTeachertsett.name='yangtianb'whereid=3");query.executeUpdate();session.getTransaction().commit();} Hibernate执行的SQL语句: Hi

6、bernate:updateTeachersetname='yangtianb'whereid=3 这样就只更新了我们更新的字段······

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。