博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-data-jpa软删除方案
阅读量:5823 次
发布时间:2019-06-18

本文共 1389 字,大约阅读时间需要 4 分钟。

  hot3.png

##maven

org.springframework.boot
spring-boot-starter-data-jpa
org.postgresql
postgresql
runtime

##配置软删除

@Entity@Table(name="demo")@SQLDelete(sql = "update demo set deleted = 1 where id = ?")@Where(clause = "deleted = 0")public class Demo{    @javax.persistence.Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    @Column(name="deleted")    private Integer deleted = 0;    private String userName;    @Override    public Long getId() {        return id;    }    @Override    public void setId(Long id) {        this.id = id;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public Integer getDeleted() {        return deleted;    }    public void setDeleted(Integer deleted) {        this.deleted = deleted;    }}

##测试删除及查询

@Test	public void testDelete(){		demoDao.delete(10L);	}	@Test	public void testQuery(){		List
demos = demoDao.findAll(); System.out.println(demos); }

##带版本 如果entity带了version,则需要改SQLDELETE为

@SQLDelete(sql = "update demo set deleted = 1 where id = ? and version = ? ")

##支持audit 如果有支持audit的话,需要去掉这个SQLDELETE的sql,自己手工update,这样可以确保lastModifiedBy是正确的。

##doc

转载于:https://my.oschina.net/go4it/blog/904388

你可能感兴趣的文章
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>