HELP me, PLEASE: Hibernate chamar Stored Function do Oracle

Oi Pessoal, blz?!!

É a primeira vez que eu preciso fazer uma chamada a uma stored Function no Hibernate. :shock:
Pessoal estou tendo algumas dificuldades, patinando… ouvi dizer q para fazer isto eu tenho mesmo q fazer o tipo de mapeamento. Isto é verdade, ou não?
Se for: é melhor mapear via XML, ou Annotation? Quais são as vantagen e desvantagens??!
Pô, tá meio dificil, me ajudem… Qq dica eh bem-vinda! Agradeço antecipadamente!

P.S.: Ah, esqueci de falar 1 detalhe: no Sistema q eu estou trabalhando usa o Hibernate Template do Spring. :?

Abraços,

E aê, galera?!
Gente, me ajuda aê, tô realmente precisando de ajuda mesmo…

Tô ralando de verdade: tive alguns progressos… consegui até aki: [code] Session hbnSessn = getHibernateTemplate().getSessionFactory().getCurrentSession();
SQLQuery strdFctnSQLQuery = hbnSessn.createSQLQuery(“SELECT * " + " FROM TABLE(TQ.TQT_FUN_TAREFA(” +
"?, " +
"?, " +
"?" +
") )");
strdFctnSQLQuery.setLong(0, _recurso.getMatricula());
strdFctnSQLQuery.setDate(1, new java.sql.Date(_dtInicio.getTime()));
strdFctnSQLQuery.setDate(2, new java.sql.Date(_dtFim.getTime()));

		strdFctnSQLQuery.executeUpdate();
		strdFctnSQLQuery.setResultTransformer(Transformers.aliasToBean(HorarioTarefaRecurso.class));
		return strdFctnSQLQuery.list(); //  callableStatement.executeQuery()

[/code]mas agora estou tendo o seguinte erro:
org.hibernate.PropertyNotFoundException: Could not find setter for DTA_OCORRENCIA on class sast.recurso.HorarioTarefaRecurso
at org.hibernate.property.ChainedPropertyAccessor.getSetter(ChainedPropertyAccessor.java:44)
at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:57)

Por gentileza, poderiam indicar a solução + simples??!

Galera,

Já tô enloquecendo com isto…
Quase até consegui fazer o “mapeamento” via Annotation (1 coisa até muito desejada por alguns), mas o mapeamento aki no Sistema do projeto q eu trabalho infelizmente é via XML; então num rolou, não…
Complementando o Cenário: o BD q eu uso é o Oracle -> e no Oracle só dá p/ chamar StoredFunction direto do condigo-fonte. Não tem como eu declará-la numa NamedQuery via XML. :cry:
Outro detalhe é q esta classe ‘HorarioTarefaRecurso’ não é gerenciada p/ Hibernate. (Na verdade, peguei 1 CasoDeUso de 1 colega q saiu da empresa e ele definiu essa Classe só p/ 'bind’ar na grid do JSF.)
Gente, me ajuda a fazer o mapeamento deste ResultSet <- já revirei a Documentação do Hibernate, pág. de Forum, Google a fora, etc., etc., etc., e nada, num consegui solucionar isto ainda…
Qq dica é bem vinda. :lol: gente, me ajuda!

[quote=derlon]Galera,

Já tô enloquecendo com isto…
Quase até consegui fazer o “mapeamento” via Annotation (1 coisa até muito desejada por alguns), mas o mapeamento aki no Sistema do projeto q eu trabalho infelizmente é via XML; então num rolou, não…
Complementando o Cenário: o BD q eu uso é o Oracle -> e no Oracle só dá p/ chamar StoredFunction direto do condigo-fonte. Não tem como eu declará-la numa NamedQuery via XML. :cry:
Outro detalhe é q esta classe ‘HorarioTarefaRecurso’ não é gerenciada p/ Hibernate. (Na verdade, peguei 1 CasoDeUso de 1 colega q saiu da empresa e ele definiu essa Classe só p/ 'bind’ar na grid do JSF.)
Gente, me ajuda a fazer o mapeamento deste ResultSet <- já revirei a Documentação do Hibernate, pág. de Forum, Google a fora, etc., etc., etc., e nada, num consegui solucionar isto ainda…
Qq dica é bem vinda. :lol: gente, me ajuda![/quote]

Seguinte esse erro ocorre pq os nome das suas alias(Colunas) no retorno do select estão diferente do seu bean, eu resolvi da seguinte forma, nas colunas de retorno do select colocava o mesmo nome do meu bean como por exemplo: as “teste1” lembrando que deve ser usado aspas duplas pois o oracle interpreta tudo maisculo qd usa aspas simples, e pode ocorrer erro na hora de setar os objetos, pois o oracle so reconhe os tipos number e varchar então quando ele retorna o curso os tipos dos valores qd número serão bigdecimo e string.Ele reconhece date , char apenas os numeros q todos serão bigdecimo, ai caso ocorra erro na conversão vc monta uma estrategia para converter.
Espero que sirva.