【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: 只是插入那些不为空的字段;

你可能感兴趣的:(【Hibernate】@DynamicUpdate(true)的使用)