SpringDataJpa一些注意事项
# 属性一致校验
entry.属性=:参数 类型不一致报错,而且Date和LocalDate框架不能自己转换...必须一致。
而且,这种错要到调用时才能报错...
# 手写Update
手写Update除了@Query
外还要加@Modifying
,同时必须开启事物,如果不需要事务,可以在接口里直接加@Transactional
。
# save方法默认会空值覆盖
在实体类添加注解,在save时如果是空值就忽略,否则会将数据库覆盖为空。
@DynamicInsert
@DynamicUpdate
1
2
2
# save在无Id时是新增,有Id时是修改
所以在新增接受前端对象时要对id做set null,以免被当作修改。
# 自动更新创建时间和修改时间
对应字段添加注解
@CreatedDate
@LastModifiedDate
1
2
2
实体类添加注解
@EntityListeners(AuditingEntityListener.class)
1
SpringBoot启动类添加注解
@EnableJpaAuditing
1
另外数据库添加相应控制也可以: createTime : CURRENT_TIMESTAMP modifyTime : CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
# 指定索引
@Table(name = " ",indexs = { @Index(columnList="col1,col2") })
1
# 逻辑删除
@SQLDelete(sql = "update table set is_deleted=1 where id = ?")
@Where(caluse = "is_deleted=1")
1
2
2
上次更新: 10/23/2024