Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2016, 13:12
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 5 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?