Pass sequence name as parameter in @Query JPA Oracle

25 views Asked by At

I am trying to retrieve data from Oracle Sequence using JPA as below:

@Repository
public interface SequenceRepository extends JpaRepository<MyEntity, Long> {
    
    @Query(value = "SELECT %s.NEXTVAL FROM dual", nativeQuery = true)
    Long getSequenceValue(String sequenceName);
}

Calling above method from Service class as:

Long nextVal = sequenceRepository.getSequenceValue("MASTER.TestSequence");

While doing so, I am getting error as:

could not extract Resultset; nested exception is oracle.hibernate.exception.SQLGrammarException

oracle.jdbc.OracleDatabaseException: ORA-00911: invalid character

How to pass sequence name as argument to @Query & would it cause SQL injection?

0

There are 0 answers