Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Java web services retorna valores nulos después de guardar

Estas en el tema de Java web services retorna valores nulos después de guardar en el foro de Java en Foros del Web. Hola, buenas veran, tengo un problema y no se lo que estoy haciendo mal, espero explicarme, tengo los siguientes métodos: Para obtener el id y ...
  #1 (permalink)  
Antiguo 19/01/2016, 13:12
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Java web services retorna valores nulos después de guardar

Hola, buenas veran, tengo un problema y no se lo que estoy haciendo mal, espero explicarme, tengo los siguientes métodos:

Para obtener el id y nombre de la oficina de acuerdo a la oficina del usuario:

Oficinas
Código:
@GET
    @Path("oficinas/{idEmpresa}")
    @Produces({"application/json"})
    public List<Oficinas> listaOficinas(@PathParam("idEmpresa") String idEmpresa) {
        int numReg;
        Query query = em.createNativeQuery("SELECT ID_OFICINA, NOMBRE_OFICINA FROM OFICINAS WHERE ID_OFICINA =\""+idEmpresa+"\"", Oficinas.class);
        numReg = query.getResultList().size();
        if(numReg > 2) {
            numReg -= 2;
        } else {
            numReg = 0;
        }
        query.setFirstResult(numReg);
        return (List<Oficinas>) query.getResultList();
    }
Con lo cual obtengo:

Código:
[{"idOficina":22,"nombreOficina":"ORFIS SUR"}]
Para obtener el personal laborando de acuerdo a la oficina:

Código:
@GET
    @Path("personalLaborando/{idOficina}")
    @Produces({"application/json"})
    public List<Personal> personalLaborando(@PathParam("idOficina") String idOficina) {
        int numReg;
        Query query = em.createNativeQuery("SELECT ID_PERSONAL, NOMBRE, APELLIDO_PATERNO, APELLIDO_MATERNO "
                + "FROM PERSONAL WHERE ID_OFICINA = \""+idOficina+"\"", Personal.class);
        numReg = query.getResultList().size();
        if(numReg > 100 ) {
            numReg -= 100;
        }else {
            numReg = 0;
        }
        query.setFirstResult(numReg);
        return (List<Personal>) query.getResultList();
    }
Con lo cual obtengo:

Código:
[{"apellidoMaterno":"karla","apellidoPaterno":"karla","idPersonal":2,"nombre":"Karla"},{"apellidoMaterno":"Lopez","apellidoPaterno":"Lopez","idPersonal":3,"nombre":"Juan"},{"apellidoMaterno":"Jimenez","apellidoPaterno":"Lopez","idPersonal":8,"nombre":"Rico"}]
Categorias:

Código:
@GET
    @Path("categorias")
    @Produces({"application/json"})
    public List<Categoria> listaCategoria() {
        int numReg;
        Query query = em.createNativeQuery("SELECT *FROM CATEGORIA", Categoria.class);
        numReg = query.getResultList().size();
        if(numReg > 10) {
            numReg -= 10;
        } else {
            numReg = 0;
        }
        query.setFirstResult(numReg);
        return (List<Categoria>) query.getResultList();
    }
Con lo cual obtengo:

Código:
[{"descripcion":"MOBILIARIO","idCategoria":1},{"descripcion":"PAPELERIA","idCategoria":2},{"descripcion":"ELECTRONICA","idCategoria":3},{"descripcion":"LIMPIEZA","idCategoria":4},{"descripcion":"OTRO","idCategoria":5}]
Cuando el usuario consume el web service desde la aplicación android todo va bien, cuando guarda los datos en la base de datos todo esta perfecto, el problema radica en que cuándo el usuario quiere cargar los datos después de guardar no obtiene los datos completos. Después de guardar esto es lo que me está retornando mi web service:

Oficinas:
Código:
[{"idOficina":22}]
Personal:
Código:
[{"apellidoMaterno":"karla","apellidoPaterno":"karla","idPersonal":2,"nombre":"Karla"},{"apellidoMaterno":"Lopez","apellidoPaterno":"Lopez","idPersonal":3,"nombre":"Juan"},{"idPersonal":8}]
Categorias:
Código:
[{"descripcion":"MOBILIARIO","idCategoria":1},{"descripcion":"PAPELERIA","idCategoria":2},{"descripcion":"ELECTRONICA","idCategoria":3},{"idCategoria":4},{"descripcion":"OTRO","idCategoria":5}]
Alguna idea a que se deba eso?
Si es problema del servidor(web services)?
Es problema del cliente?
  #2 (permalink)  
Antiguo 20/01/2016, 03:24
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Java web services retorna valores nulos después de guardar

Cita:
Cuando el usuario consume el web service desde la aplicación android todo va bien, cuando guarda los datos en la base de datos todo esta perfecto, el problema radica en que cuándo el usuario quiere cargar los datos después de guardar no obtiene los datos completos. Después de guardar esto es lo que me está retornando mi web service:
Dices que si llamas a listaOficinas sale todo correcto, pero que si insertas un nuevo dato y vuelves a llamar a listaOficinas el último insertado no sale completo ¿es así?

Si haces dos inserciones ¿salen los dos incompletos o sólo el último? ¿Has comprobado directamente en la BBDD qué es lo que has guardado?

Me imagino que no estás guardando lo que tú crees que guardas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 20/01/2016, 10:12
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Respuesta: Java web services retorna valores nulos después de guardar

No, las oficinas ya están en la Base de Datos, el usuario solo puede elegir una de ellas, el no puede agregar mas oficinas, el proble es que cuando selecciona una y envía los datos para guardar lo guarda bien lo e checado en mi base de datos, ya que al hacerlo lo registro en 3 tablas y lo hace todo bien, el problema viene cuando quiere cargar de nuevo los datos, aquella oficina que selcciono y guarno aparece como nulo el campo. Me pasa lo mismo con categorias y personal.

No sé si me explique bien.
  #4 (permalink)  
Antiguo 20/01/2016, 17:29
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Java web services retorna valores nulos después de guardar

Cita:
Iniciado por LDN Ver Mensaje
No, las oficinas ya están en la Base de Datos, el usuario solo puede elegir una de ellas, el no puede agregar mas oficinas, el proble es que cuando selecciona una y envía los datos para guardar lo guarda bien lo e checado en mi base de datos, ya que al hacerlo lo registro en 3 tablas y lo hace todo bien, el problema viene cuando quiere cargar de nuevo los datos, aquella oficina que selcciono y guarno aparece como nulo el campo. Me pasa lo mismo con categorias y personal.

No sé si me explique bien.
No, te explicas muy mal.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 25/01/2016, 13:27
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Respuesta: Java web services retorna valores nulos después de guardar

Añado la respuesta al terminar cada uno de los métodos hay que limpiar la consulta con la siguiente línea:

Código:
em.clean();
Gracias.

Etiquetas: java-mysql, json, rest, web-services
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:28.