@Where(clause="is_active=1")不是使用spring数据jpa处理软删除的最佳方法。
首先,它仅适用于hibernate工具。
其次,你永远无法使用spring数据获取软删除的实体。
我的解决方案是由spring数据提供的。
#{#entityName}可以在通用存储库上使用表示具体实体类型名称的表达式。和代码将是这样的:
//Override CrudRepository or PagingAndSortingRepository's query method:@Override@Query("select e from #{#entityName} e where e.deleteFlag=false")public List<T> findAll();//Look up deleted entities@Query("select e from #{#entityName} e where e.deleteFlag=true")public List<T> recycleBin(); //Soft delete.@Query("update #{#entityName} e set e.deleteFlag=true where e.id=?1")@Modifyingpublic void softDelete(String id); 


