我们有一个相当复杂的数据模型,并且在MySQL之上使用Hibernate和Spring Data JPA.我们有一个基类,所有域对象都可以扩展以最小化样板代码.我希望能够仅使用此类在所有域对象中添加软删除功能.但是,@ SQLDelete在子句中需要表名称:

@SQLDelete(sql="UPDATE (table_name) SET deleted = '1' WHERE id = ?")

@Where(clause="deleted <> '1'")

有人知道一种概括SQLDelete语句并允许扩展域对象填充其自己的表名的方法吗?

解决方法:

如果使用hibernate和@SQLDelete,则无法轻松解决您的问题.但是您可以考虑使用Spring Data的表达式语言进行软删除的另一种方法:

@Override

@Query("select e from #{#entityName} e where e.deleteFlag=false")

public List findAll();

//recycle bin

@Query("select e from #{#entityName} e where e.deleteFlag=true")

public List recycleBin();

@Query("update #{#entityName} e set e.deleteFlag=true where e.id=?1")

@Modifying

public void softDelete(String id);

//#{#entityName} will be substituted by concrete entity name automatically.

像这样重写基础存储库.所有子存储库接口都将具有软删除功能.

标签:spring-data-jpa,spring-data,hibernate,mysql

来源: https://codeday.me/bug/20191201/2084343.html

hql删除mysql语句_mysql-使用Hibernate @SQLDelete对所有实体进行软删除相关推荐

  1. hql删除mysql语句_hibernate -- HQL语句总结

    本章介绍了Hibernate的几种主要检索方式:HQL检索方式.QBC检索方式.SQL检索方式.HQL是Hibernate Query Language的缩写,是官方推荐的查询语言.QBC是Query ...

  2. mysql删除索引语句_MySQL:使用SQL语句删除所有索引

    删除所有索引 可利用ALTER TABLE或DROP INDEX语句来删除索引.这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行即可 #拼接删除索引的语法 SELECT ...

  3. 删除mysql表_Mysql 删除数据表的三种方式详解

    用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除程度可从强到 ...

  4. yum删除mysql数据库_MySQL数据库之Centos中彻底删除Mysql(rpm、yum安装的情况)

    本文主要向大家介绍了MySQL数据库之Centos中彻底删除Mysql(rpm.yum安装的情况) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我用的centos6,mysq ...

  5. hql删除mysql语句_hibernate hql删除异常

    hql语句:dao.executeHql("delete Student As s where s.course.teacher.tno"=tno); 错误信息:返回sql语句:d ...

  6. hql删除mysql语句_如何使用delete语句删除数据

    如何使用delete语句删除数据 发布时间:2021-01-15 10:57:41 来源:亿速云 阅读:83 作者:小新 栏目:数据库 这篇文章主要介绍如何使用delete语句删除数据,文中介绍的非常 ...

  7. mysql语句_Mysql语句

    ------------恢复内容开始------------ 存储引擎 存储引擎是用于根据不同的机制处理不同的数据. 查看mysql中所用引擎: show engines: create table ...

  8. hibernate mysql语句_打印hibernate的SQL语句的几种办法

    摘要 使用hibernate时,我们常常需要查看hibernate实际提交到数据库的SQL及相关参数.这里提供几种方案,供大家在开发中使用. 使用hibernate-configuration 这也许 ...

  9. 删除mysql指令_MySQL常用命令学习笔记

    本文转载自[微信公众号:WalkingCloud,ID:WalkingCloud2018]经微信公众号授权转载,如需转载与原文作者联系 MySQL常用命令学习笔记 一.数据库相关操作 1)创建数据库 ...

最新文章

  1. [云炬创业学笔记]第二章决定成为创业者测试10
  2. 阿里云消息队列python_41. Python Queue 多进程的消息队列 PIPE
  3. SQL Azure Reporting CTP
  4. 耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)
  5. bootstrap-table前端修改后台传来的数据重新进行渲染
  6. python如何放一张图片上去_python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码...
  7. 20190825 On Java8 第十二章 集合
  8. 线性模型第2讲:岭回归与分类
  9. Windows 中实现 Java 本地方法
  10. [转帖]无法将临时对象绑定到非常量引用
  11. Python学习笔记——python基础 2. 高级变量类型(列表、元祖、字典)
  12. Arduino基础学习
  13. 从sk_buff中的线性区与非线性区到 bpf_skb_pull_data
  14. ECCV 2020 best paper: RAFT算法解析
  15. 佟丽娅现身活动火力全开 黑色裹身裙时髦大气,未修图也美的惊艳
  16. 记canvas优化图片抠图历程
  17. 怎么关闭自动启动的屏幕键盘
  18. 什么软件可以测试sd卡,如何做SD卡测试和SD卡测试工具
  19. HashMap线程安全问题详细解析
  20. 2.Cognition(human brain)

热门文章

  1. csvtk:高效命令行版极简dplyr
  2. TEE综述:植物—土壤反馈(PSF):自然和农业科学间的桥梁
  3. KEGG在线数据库使用攻略
  4. R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称
  5. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)
  6. R语言ggplot2可视化使用ggplotly(plotly version of R)可视化散点图(scatter plot)
  7. R语言构建xgboost模型使用早停法训练模型(early stopping):自定义损失函数(目标函数,loss function)、评估函数(evaluation function)
  8. R语言使用ggpubr包绘制出版社、编辑、审稿人要求的可视化图形实战
  9. R语言na.omit函数删除NA值实战
  10. python使用imbalanced-learn的ADASYN方法进行上采样处理数据不平衡问题