I am trying to invoke a Stored Procedure whose signature looks like the following:
CREATE OR REPLACE PROCEDURE FIND_FIRST_BOOKMARK_GT(bookmark IN NUMBER, cur OUT
I was not able to get this syntax working as such, however, the notion of retrieving from a stored procedure is effectively a shorthand for selecting from (possibly a view) mixed with applying some input based function. To that effect, I have replaced my stored procedure with a function / table that yields the same effect.
@Query("SELECT r FROM RESPONSES r WHERE BOOKMARK = FIND_FIRST_BOOKMARK_GT(:bookmark)")
Response findFirstBookmarkGreaterThan(@Param("bookmark") Long bookmark);
This uses the @Query
syntax in conjunction with a table and a function, whose overall logic is identical to calling the stored procedure I had intended. Although a little more difficult to follow perhaps, the syntax is at least much shorter than using the @NamedStoredProcedureQuery
.
The function does the same thing the stored procedure originally did EXCEPT for the last part which was a SELECT INTO
, this is now encapsulated as part of the @Query
.