次のように、@ org.springframework.data.jpa.repository.Queryアノテーションを使用しています。@ 1を@Queryアノテーションで使用して引数を置換する
@Query(nativeQuery = true, value = "select ITEM_ID from db.ITEMS "
+ "where dbms_lob.instr(ITEM_HISTORY, utl_raw.cast_to_raw('<PERSON><NAME>?1</NAME></PERSON>'), 1, 1) > 0")
List<String> findByName(String name);
このクエリは、ITEM_HISTORYと呼ばれるブロブ内<PERSON><NAME>?1</NAME></PERSON>
を検索し、一致するアイテムのIDを返します。
?1は自動的に文字列名に置き換える必要がありますが、動作しません。 の前後に引用符( ')が付いていることがほぼ確実です。しかし、私はそれを行う方法を理解できませんでした。 ここで正しい構文は何ですか?
?1の代わりに?1が機能しない –