Passing null for a stored procedure parameter in Hibernate
Issue
- The Hibernate 5.0 User Guide (section 22.7) documents the property
hibernate.proc.param_null_passingwhich may be used to instruct Hibernate to passnullto the database when anullvalue is supplied by application code for a stored procedure parameter. -
When
hibernate.proc.param_null_passingis set totrueand a JPA 2.1 StoredProcedureQuery.setParameter(String, Object) method is used to pass a null value, a database exception (similar to the one below) is raised indicating that the null was not passed to the database:java.sql.SQLException: No value specified for parameter 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2594) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2569) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2493) at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1316) at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:920) at org.hibernate.result.internal.OutputsImpl.<init>(OutputsImpl.java:52)
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 7
- Hibernate 5.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.