Olá,
Estou precisando realizar o mapeamento de um Stored Procedure através do Hibernate.
Procedure.hbm.xml
<hibernate-mapping>
<sql-query name="sp_hall_login" callable="true">
<return alias="usuarioBanco" class="br.bean.UsuarioBanco">
<return-property name="nome" column="name"/>
<return-property name="senha" column="password"/>
</return>
{ call sp_hall_login( ?,? ) }
</sql-query>
</hibernate-mapping>
DAO
List list = sessao.getNamedQuery("sp_hall_login").
setParameter(0,pUsuario.getNome()).
setParameter(1,pUsuario.getSenha()).list();
Iterator it = list.iterator();
UsuarioBanco user;
while(it.hasNext()) {
user = (UsuarioBanco) it.next();
System.out.println("Nome: "+user.getNome());
System.out.println("Senha: "+user.getSenha());
}
Dá o seguinte erro
Erro: java.lang.UnsupportedOperationException: org.hibernate.dialect.HSQLDialect does not support resultsets via stored procedures
Exception in thread "main" java.lang.UnsupportedOperationException: org.hibernate.dialect.HSQLDialect does not support resultsets via stored procedures
at org.hibernate.dialect.Dialect.registerResultSetOutParameter(Dialect.java:897)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1574)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2150)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:117)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1607)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:121)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:169)
at br.dao.UsuarioDAO.logar(UsuarioDAO.java:47)
at br.dao.UsuarioDAO.main(UsuarioDAO.java:123)
Alguem sabe como devo proceder?
Att.
