К сожалению, NamedParameterUtils.parseSqlStatement и связанные с ним классы не предоставляют ничего полезного (почти все объявляется закрытым, и при чтении проблемы и PR на github, нет никаких планов по изменению этого).
Я не хочу идти по маршруту Unsafe + field.setAccessible...
.. так что я скопирован метод NamedParameterUtils.parseSqlStatement и другой связанный код. Добавлены тесты для моего варианта использования и тому подобное. Я также добавил несколько тестовых примеров из NamedParameterUtilsTest.
В моем покрытии/тесте кода просто отсутствуют эти строки:
Код: Выделить всё
...
if (statement[m + n] != STOP_SKIP[i].charAt(n)) {
endMatch = false;
break;
}
...
Какой код мне следует передать в NamedParameterUtils.parseSqlStatement, чтобы получить доступ к этому оператору if и ввести его? Я не менял код функции, он такой же, как исходный код, найденный на github (код функции NamedParameterUtils.parseSqlStatement).
Подробнее здесь: https://stackoverflow.com/questions/793 ... atch-false