Hibernate + Stored Procedure

Bom dia,

Estou tentando usar hibernate acessando uma procedure no Oracle, ja consultei alguns exemplo e ducumentação do site do hibernate, mas não estou conseguindo.

Procedure:

[code]create or replace procedure SP_GET_NUMBER
(
seq_cursor out sys_refcursor
)
as

[…]

open seq_cursor for
select min(temp_id) as next_number from temp_table
where temp_id not in(select frm_number from frm_produtos);

end SP_GET_NUMBER;[/code]

Mapeamento no hibernate

[code]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

[…]

&lt;sql-query name=&quot;productFormGDNumber_SP&quot; callable=&quot;true&quot;&gt;	
    &lt;return-scalar column=&quot;next_number&quot; type=&quot;long&quot; /&gt;
	&#123;? = call SP_GET_NUMBER&#40;&#41;&#125;
&lt;/sql-query&gt;

</hibernate-mapping>[/code]

Testando a proc no PL/SQL esta funcionando, acredito que deve ser algo no mapeamento.

A proc recebe um “sys_refcursor”, eu preciso passar alguma coisa no mapeamento? Se sim o que?

Alguem sabe o que esta errado?

Obrigado,

Rodrigo

Esse foi o erro apresentado no console ao executar o código.

[code]Hibernate: {? = call sp_get_number()}
15:34:52,748 WARN JDBCExceptionReporter:71 - SQL Error: 6550, SQLState: 65000
15:34:52,748 ERROR JDBCExceptionReporter:72 - ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'SP_GET_NUMBER’
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

dao.PersistanceException: org.hibernate.exception.GenericJDBCException: could not execute query[/code]

Deve ser alguem parametro que precisa ser passado no mapeamento mesmo, mas ainda não sei como.

Nesse caso uma function resolveu meu problema.

[code]create or replace function FC_GET_NUMBER
return sys_refcursor is seq_cursor sys_refcursor;

open seq_cursor for
select min(temp_id) as next_number from temp_table
where temp_id not in(select frm_number from frm_produtos);

return seq_cursor;
end FC_GET_NUMBER;[/code]