Subject | SpringDataJPA @Procedure on Firebird 1.5 vs Firebird 3.0 |
---|---|
Author | |
Post date | 2019-02-15T23:06:12Z |
Hi,
We have a SpringBoot 2.x Application with Spring 5, Hibernate and Hikari running and into test. We have Firebird 1.5 and Firebird 3.0 instances that we do regression testing on. We have used the SpringDataJPA @Procedure annotation for months without issue until we switched our database over to Firebird 3.0. For some reason when we call a stored procedure that uses SpringDataJPA's @Procedure annotation it fails. If we switch the @Procedure annotation over to an @Query as follows:
@Query(value="SELECT * FROM PROCEDURE_NAME(:arg1, :arg2)", nativeQuery=true)
then everything starts working again beautifully. Is there any reason why @Procedure does not work with Firebird 3.0 but does work with Firebird 1.5? We also noticed in the hibernate log that an extra argument was added to our procedure as follows:
In Firebird 1.5 hibernate log:
{call procedure_name(?,?,?,?,?)}
In Firebird 3.0 hibernate log:
{call procedure_name(?,?,?,?,?,?)}
We did not change the method signature on the client or on the server. We are unable to figure out why the call now thinks that an extra argument is being passed, we only had 5 defined on the stored procedure and in the @Procedure definition on the JpaRepository.
Any ideas?