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 {
/*Instanciaobjetos*/em=getEntityManager();intvSeq=0;/*AcessaanamedQuery*/Queryquery=em.createNativeQuery("select "+pNomeSequence+".nextval from sys.dual");vSeq=((Integer)query.getSingleResult()).intValue();returnvSeq;}finally{em.close();}}
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
lblanco
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:
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
lblanco
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