Using a Stored Procedure to Insert Records with Spring & Hibernate
It took a little research to discover how to integrate a stored procedure for inserting records into my application. However, once I found the right piece of information, it became easy.
Here is what I am using:
<hibernate-mapping> <class name="com.codebits.vo.SuperSimpleRecord" table="super_simple"> <id name="id" type="string" length="32" unsaved-value="null"> <generator class="uuid.hex" /> </id> <property name="name" type="string" length="100" not-null="true" /> <property name="count" type="integer" not-null="false" /> <property name="created" type="date" not-null="true" insert="false" /> <sql-insert callable="true" check="none"> {call insert_record(?, ?, ?)} </sql-insert> </class> </hibernate-mapping>
Notice the check attribute? That's what took me awhile to find, I think it was introduced in Hibernate 3.2. Just for completeness, here is my stored procedure:
create or replace procedure insert_record( in_name in varchar2, in_count in number, in_id in varchar2 ) as begin insert into super_simple values(in_id, in_name, in_count, sysdate); commit; end insert_record;