getSingleResult e Integer

Olá amigos,

Tenho a classe abaixo e não entendo o porque do erro. Queria fazer o query.getSingleResult() retonar um Integer, só isso, mas não dá certo.
Alguém já passou por isso ?

public int searchNextSequence(String pNomeSequence) {
try {

    /* Instancia objetos */
    em            = getEntityManager();
    int     vSeq  = 0;

    /* Acessa a namedQuery */
    Query query  = em.createNativeQuery("select "+pNomeSequence+".nextval from sys.dual");
    vSeq         = ((Integer)query.getSingleResult()).intValue(); 
    return vSeq;
    
    } finally {
        em.close();
    }
    
}

Ola Lblanco,

Duas coisas lblanco,

1 ? Você poderia especificar qual o erro, porque sem ele, fica complicado te ajudar.
2 ? Quando você postar códigos procure usar a tag(code) para códigos Java.

Abs

Olá André,

Obrigado pela dica, sou novo por aqui e toda ajuda é sempre bem vinda. Bom como havia comentado, segue abaixo o meu código.
Logo abaixo dele vem o tal erro. Obrigado pela ajuda.

public int searchNextSequence(String pNomeSequence) {
      try {
      
        /* Instancia objetos */
        em            = getEntityManager();
        int     vSeq  = 0;

        /* Acessa a namedQuery */
        Query query  = em.createNativeQuery("select "+pNomeSequence+".nextval from sys.dual");
        vSeq         = ((Integer)query.getSingleResult()).intValue(); 
        return vSeq;
        
        } finally {
            em.close();
        }
        
    }

java.lang.ClassCastException: java.util.Vector
at websis.commons.utility.sequenceUtility.searchNextSequence(sequenceUtility.java:30)
at websis.controller.ge.geController.prepareInsertGeTpLogradouro(geController.java:213)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)…

Obs: Já tentei usar assim também, mas o erro permanece:

        Query query  = em.createNativeQuery("select "+pNomeSequence+".nextval from sys.dual", Integer.class);
        vSeq         = ((Integer)query.getSingleResult()).intValue(); 

Obrigado mais uma vez

[/code]Ola lblanco,

Pelo visto sua consulta esta retornando uma collection (vector) e com isso, ao inves de tentar recuperar o valor direto em uma variavel tente usar o while e ai sim setar o valor em uma variavel.

tipo assim:

while(query.hasNext()) { bla bla Integer i = (Integer) ..... }

Nao se esqueca que como é uma collection, pode ser que retorne mais um valor !

qq coisa posta au suas duvidas !

Abs

Pois é !!!

Mas achei que quando eu fizesse o Cast ele iria converter. De qualquer forma , muito obrigado pela ajuda. Irei fazer dessa forma.

Obrigado e até mais.
Obs: Esse forúm tem muita gente boa.
Abraços

qq coisa posta ai !

Abs