自动向所有JpaRepository方法添加条件

9avjhtql  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(154)

假设我有一个类Task,其中我有字段boolean finished。我还有一个接口TaskRepository,它扩展了JpaRepository,其中有所有的方法。我希望所有这些方法都只查询或更新finished==false记录。有没有一种方法可以自动配置存储库,或者我必须用somethingAndFinishedFalse手动创建所有方法?

bq3bfh9z

bq3bfh9z1#

使用aspectj,你可以设置一种正则表达式来拦截所有包含特定方面的类,如包/名称/返回类型等。
例如,下面的代码将在调用带有切入点的类时执行。

import org.aspectj.lang;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class JpaIntegrityValidator {

 @Before("within(com.business.jpa.repository.*)") // Aspectj supports a lot of conditions within, execution etc.
 public void onRepositoryPackage(JoinPoint joinPoint) {
    // This wil be executed before, or after, or when exeption etc.
 }

字符串
这只是一个示例,你可以使用之前/之后/之后抛出等和更多的条件.试着调查一下那个图书馆,我想这就是你要找的。
当连接点包含标记为false的任务时,可以抛出异常。

相关问题