【Hibernate】@DynamicUpdate(true)的使用

在使用Hibernate的时候, 我们发现如果使用session.update(entity)来更新一个对象的属性值的时候, 就会出现一个问题: 我想更新一个字段, 但是更新之后发现数据库中除了主键之外的其他字段全部变成null, 问题就解释到这里

解决方案:

  • XML: 使用dynamic-update=true
    • 位置: *.hbm.xml中的class标签的属性dynamic-update
  • Annotation: 使用@DynamicUpdate(true)
    • 位置: *.java实体类上打上标签

☛ 注意: DynamicUpdate: 只更新同一个session里面,同一个对象有改变的字段。说白了, 就是在更新某条记录之前, 先把这条记录从数据库查出来, 那么这条数据就在session(一级缓存)中, 我们再去修改这个对象的数据即可;

DynamicInsert: 只是插入那些不为空的字段;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容