美文网首页
Spring JPA 使用笔记01

Spring JPA 使用笔记01

作者: LoWang | 来源:发表于2019-08-07 14:09 被阅读0次

    Spring JPA 使用笔记01

    • 如果需要程序生成分布式主键,那么注解上不需要@GeneratedValue, 否则hibernate不会生成该字段的sql。
    • spring boot 2.x, 如果需要数据库自增长主键,需要配置use-new-id-generator-mappings: false.
    • spring boot 默认开启了open-in-view, 也就是数据层的Session从Controller层就开启,主要是针对前端模板渲染使用,如果是纯api接口,可以关闭spring.jpa.open-in-view: false.
    • 如果@Entity使用父类继承,需要在父类上加上注解@MappedSuperclass, JPA在扫描的时候才会识别父类的字段.
    • 如果使用了@CreatedDate, @LastModifiedDate, 需要在启动类上加上注解:@EnableJpaAuditing.
    • 注解@DynamicUpdate的逻辑是: 在更新的时候,先查询数据库的数据,然后和更新的对象进行比较,如果有改动的,才会更新,生成sql语句,如果前端传入的数据只有某些字段,那么其他字段为NULL,Hibernate会认为是修改了,所以会刷新所有字段为新的对象。如果要实现只更新某些字段,可以先查询出原对象,然后把需要修改的值赋值到原对象,保存即可。可以使用BeanUtils.copy,指定某些字段需要忽略的即可。

    相关文章

      网友评论

          本文标题:Spring JPA 使用笔记01

          本文链接:https://www.haomeiwen.com/subject/yxuodctx.html