Używam mybatis do wykonywania zapytań sql w moim projekcie. Muszę przechwycić kwerendę sql przed wykonaniem, aby zastosować niektóre zmienione dynamicznie. Czytałem o @Interseptors tak:Jak przechwytywać i zmieniać zapytania sql dynamicznie w mybatis
@Intercepts({@Signature(type= Executor.class, method = "query", args = {...})})
public class ExamplePlugin implements Interceptor {
public Object intercept(Invocation invocation) throws Throwable {
return invocation.proceed();
}
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
public void setProperties(Properties properties) {
}
}
I to naprawdę przechwytuje egzekucje, ale nie ma sposobu, aby zmienić zapytanie sql ponieważ odpowiednie pole nie jest zapisywalny. Czy muszę utworzyć nową instancję całego obiektu, aby zastąpić zapytanie sql? Gdzie jest właściwe miejsce do przechwytywania wykonania kwerendy, aby zmienić ją dynamicznie? Podziękować.