我正在尝试使用JPA @Query Annotation更新数据库表中的现有行。我想通过将Deleted_Flag从NO更新为YES来执行软删除。
这是我的代码段:
@Modifying
@Query("UPDATE TBL_NAME SET DELETE_FLAG = 'YES' WHERE DELETE_FLAG = 'NO'
AND FILE_NM = :FILE_NM")
public void softDelete(@Param("FILE_NM") String fileName)
{
}
我没有收到任何错误,但是数据库中的数据没有更新。
实际结果必须类似于所有现有行都必须使用DELETE_FLAG更新为YES。
答案 0 :(得分:0)
在使用“更新”查询时,也许使用主键列会与其他“位置”要求一起提供帮助
答案 1 :(得分:0)
确保您使用活动事务调用存储库方法。
实际上,在我的上一个项目中,我使用以下惯用法来更新标志:
使用Hibernetish注释实体:
<h1>Pictures</h1>
<div class="images">
<img src="https://picsum.photos/200/200?random">
<p>Image 1</p>
</div>
<div class="images">
<img src="https://picsum.photos/200/200?random">
<p>Image 2</p>
</div>
<div id="my_freaking_id">
It has been a long day, without you my friend and I will tell you all about it when I see you again!<br>I hope our friendship lasts forever!
</div>
实际更新附带一个简单的查找方法:
@Entity
@Table(name="myTable")
@Where(clause = "is_deleted = 0")
@Cacheable
public class MyTable {}