それを行うには任意の春データ方法を知ってはいけない、しかしspontanously私はいくつかの方法を考えることができます...
あなたは「両方が存在する場合にのみ、カスタム@queryを(使用することができますそれが十分であれば何かが返されます)
@PreAuthorizeでセキュリティを使用して、両方のパラメータがnullではないかどうかを調べることができます。
たぶん私は考えることができる最も簡単な(と少なくとも臭い)の方法は、メソッドの周りにラップし、両方のパラメータの例外をスローし、独自のAspect
が存在しない記述することです...たとえば、独自のカスタムアノテーションを作成します私は
@Around("@annotation(com.example.AllParametersRequired.class)")
public Object throwExceptionOnMissingParameters(ProceedingJoinPoint pjp) throws Throwable {
int nullCount = Arrays.stream(pjp.getArgs()).filter(o -> o == null).count();
if (nullCount > 0) throw new RuntimeException("Null is not allowed.);
return pjp.proceed();
}
あなたはおそらく、あなたのケースに最適なポイントカット見て、そこに少し実験する必要がありますが、:、あなたのメソッドの前にそれを配置し、側面、(テストしていない)のような何かを書きますなぜSpring Dataのリポジトリメソッドについての面を包むことができないべきではないのか分かりません。とにかく、Spring AOPのドキュメントへのリンクがあります。あなたがそのようにしたい場合にはおそらく役に立ちます:Link