上記の質問に対する私の推測では、それは不可能ですが、確認が必要です。したがって、問題は、プライベートな静的最終文字列に Oracle 固有の SELECT (ROWNUM および FOR UPDATE SKIP LOCKED キーワードが使用されている) があることです。
private static final String REC_QUERY_SELECT = "SELECT * FROM ... WHERE ROWNUM <=1 for update skip locked";
HSQL で単体テストしたいのですが、HSQL はこれらの Oracle キーワードを認識していません。REC_QUERY_SELECT 変数を変更 (SELECT をより単純なものに変更) したいのですが、最終的な文字列リテラルであるため変更できません。それを変更する方法はありますか?(コードベースを変更してはいけません。単体テストを作成する必要があるだけです)。私もこのコードを試しました:
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);