Eu estou usando hibernate with oracle and tenho o seguinte trecho de código:
ScrollableResults results = criteria.scroll(ScrollMode.SCROLL_SENSITIVE);
Quando eu executo o trecho acima tenho a seguinte exceção:
org.hibernate.AssertionFailure: scrollable result sets are not enabled
Estou usando hibernate 3.2.2.ga e oracle 10g
Alguem pode me ajudar? Como posso resolver esse problema?
Victor Lindberg
Já resolvi o problema.
É só setar a para true a propriedade hibernate.jdbc.use_scrollable_resultset no hibernate.cfg.xml como descrito abaixo:
Victor Lindberg
Bom dia galera do GUJ!
Desculpe reabrir este tópico que vai fazer aniversário mês que vem, mas estamos passando pelo mesmo problema e eu queria ter certeza que a solução fornecida pelo colega vai resolver.
Nós usamos as duas linhas abaixo para paginar consultas:ScrollableResults sr = query.scroll();
sr.last();
e tudo funciona normalmente. Só que eventualmente, quando a rede cai e o banco de dados é reiniciado, ao fazer consultas paginadas dá o erro de “org.hibernate.AssertionFailure: scrollable result sets are not enabled”. Aí a gente tem que reiniciar o tomcat com a aplicação pra voltar a funcionar normalmente.
Tentando usar o hibernate.jdbc.use_scrollable_resultset, eu gerei um war sem esta linha para tentar replicar o erro e outro com a linha, para ver se tentando replicar o erro ele deixa de acontecer. Só que agora nós tentamos replicar a queda do banco e a aplicação sem o erro não deu nenhum problema.
Então eu pensei em inserir o hibernate.jdbc.use_scrollable_resultset assim mesmo, acreditando que ele vai resolver o erro, mesmo que não saibamos agora com 100% de certeza se é proveniente da queda do banco “sujando” a conexão.
Queria saber se inserindo esta linha o hibernate adquire algum comportamente indesejado pro meu sistema, alguma perda de performance ou amarração ao JDBC, ou se ele só diz que ScrollableResults está habilitado e meu problema acabará.
Mesmo porque, a resposta do colega foi postada no dia da mentira, por isso eu não acredito nela kkkk
Rs, to brincando ^^
É isso aí, quem puder me ajudar eu fico grata!
Abraços!
Puxa vida…
Ninguém sabe me dizer ao menos se a configuração abaixo vai resolver meu problema sem afetar o desempenho do meu hibernate? Por favor… To precisando disso…
Obrigada a todos mais uma vez
Estou com este mesmo problema, intermitente. Estou usando o hibernate (SEAM) com DB2. Temos várias instâncias WEB em execução. Eventualmente uma começa a lançar a exception:
...
Caused by: org.hibernate.AssertionFailure: scrollable result sets are not enabled
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:504)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
...
Esta assertion está assim no código do hibernate (classe org.hibernate.jdbc.AbstractBatcher):
...
495 private PreparedStatement getPreparedStatement(
496 final Connection conn,
497 String sql,
498 boolean scrollable,
499 final boolean useGetGeneratedKeys,
500 final String[] namedGeneratedKeys,
501 final ScrollMode scrollMode,
502 final boolean callable) throws SQLException {
503 if ( scrollable && !factory.getSettings().isScrollableResultSetsEnabled() ) {
504 throw new AssertionFailure("scrollable result sets are not enabled");
505 }
506
...
Então por alguma razão o factory.getSettings().isScrollableResultSetsEnabled() está retornando [color=red] FALSE[/color].
Tentei incluir a propriedade:
<property name="hibernate.jdbc.use_scrollable_resultset" value="true" />
no persistence.xml do SEAM mas ainda aconteceu o problema em uma das instâncias…
Vou dar uma nova verificada mas o problema ainda inexplicável está ocorrendo :roll:
Tudo de bom,
João Paulo Limberger
Só para atualizar…
Faltou alterar os persistence.xml de alguns projetos, então o problema deixou de ocorrer.
Muito estranho é o fato de ter acontecido, pois o factory.getSettings().isScrollableResultSetsEnabled() recebe seu valor a partir dos Meta Dados do GBD, logo nada justifica a intermitência, então existe um BUG em algum lugar :!:
Tudo de bom,
jp