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

[SOLUCIONADO] json, entities como obtener solo ciertos campos

Estas en el tema de json, entities como obtener solo ciertos campos en el foro de Java en Foros del Web. Hola, buenas verán tengo un problema al realizar lo siguiente: Tengo dos tablas relacionadas, una se llama Activo y otra Incidencias, tiene la siguiente relación: ...
  #1 (permalink)  
Antiguo 22/12/2015, 18:14
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
json, entities como obtener solo ciertos campos

Hola, buenas verán tengo un problema al realizar lo siguiente:

Tengo dos tablas relacionadas, una se llama Activo y otra Incidencias, tiene la siguiente relación:
Un activo puede tener n incidencias y un usuario registra n incidencias.
Al realizar una consulta que me obtenga las incidencias encontradas de acuerdo al usuario que la realizo:

Código:
@GET
    @Path("incidenciasEncontradas/{usuario}")
    @Produces({"application/json"})
    public List<Incidencias> incidencias(@PathParam("usuario") String usuario) {
        int numReg;
        Query query = em.createNativeQuery("SELECT *FROM INCIDENCIAS WHERE ID_USUARIO = \""+usuario.toUpperCase()+"\"", Incidencias.class);
        numReg = query.getResultList().size();
        if(numReg > 10) {
            numReg -= 10;
        } else {
            numReg = 0;
        }
        query.setFirstResult(numReg);
        return (List<Incidencias>) query.getResultList();
    }
Estoy haciendo la consulta y todo va bien, al ejecutar el web service y obtengo todo esto:

Código:
[{"descripcion":"dos","fecha":"2015-12-22T00:00:00-06:00","idActivo":{"denominacion":"hola","descripcion":"lolo","estado":"Ac","idActivo":18,"idCategoria":{"descripcion":"MOBILIARIO","idCategoria":1},"idOficina":{"calle":"MORELOS","colonia":"CENTRO","cpp":"91000","idCiudad":"Xalapa","idEmpresa":{"descripcion":"ORFIS","idEmpresa":5},"idEstado":"Veracruz de Ignacio de la Llave","idOficina":22,"nombreOficina":"ORFIS SUR","numeroOficina":"45","numeroTelefono":"5673245634","rfc":"DFKJ4389FN348"},"idPersonal":{"apellidoMaterno":"karla","apellidoPaterno":"karla","calle":"Juárez","colonia":"Centro","cpp":"91000","email":"[email protected]","idCiudad":"Xalapa","idEstado":"Veracruz de Ignacio de la Llave","idOficina":{"calle":"MORELOS","colonia":"CENTRO","cpp":"91000","idCiudad":"Xalapa","idEmpresa":{"descripcion":"ORFIS","idEmpresa":5},"idEstado":"Veracruz de Ignacio de la Llave","idOficina":22,"nombreOficina":"ORFIS SUR","numeroOficina":"45","numeroTelefono":"5673245634","rfc":"DFKJ4389FN348"},"idPersonal":2,"nombre":"Karla","numeroTelefono":"3289326746"},"marca":"Intel","modelo":"dssd3","notaCredito":"fdhjfd","numeroInventario":"122d","numeroSerie":33213,"precio":123.2},"idIncidencia":1,"idOficina":{"calle":"MORELOS","colonia":"CENTRO","cpp":"91000","idCiudad":"Xalapa","idEmpresa":{"descripcion":"ORFIS","idEmpresa":5},"idEstado":"Veracruz de Ignacio de la Llave","idOficina":22,"nombreOficina":"ORFIS SUR","numeroOficina":"45","numeroTelefono":"5673245634","rfc":"DFKJ4389FN348"},"idUsuario":"ALFREDO","tipoIncidencia":"dos"}]
Mi pregunta es, como puedo hacer para que solo retorne el idActivo y numeroSerie y no todo el "objeto". Gracias.
  #2 (permalink)  
Antiguo 23/12/2015, 01:48
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: json, entities como obtener solo ciertos campos

Buenas,

Llevas posteando esta duda y aparentemente sin avanzar desde el 3/12. No se entiende que si has hecho tu el codigo no sepas responderte tu mismo.
No has intentando nada en todo este tiempo?

Basta con retornar simplemente esos dos campos ne la query y mapearlo contra una estructura valida que los pueda contener (quizas List<Long[]>?).

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 07/01/2016, 15:00
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: json, entities como obtener solo ciertos campos

Buenas si lo e intentado, encuentro poca información acerca de mapear, si pudieras facilitarme un ejemplo te lo agredecería mucho. Gracias
  #4 (permalink)  
Antiguo 14/01/2016, 22:31
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: json, entities como obtener solo ciertos campos

Bueno, pude resolver esto de la siguiente manera:

Código:
@GET
    @Path("incidenciaPorUsuario/{idUsuario}")
    @Produces({"application/json"})
    public String indicenciaPorUsuario(@PathParam("idUsuario") String idUsuario) {
        Query query = em.createNativeQuery("SELECT *FROM INCIDENCIAS WHERE ID_USUARIO = \""+idUsuario+"\"", Incidencias.class);
        String json = "[";
        List<Incidencias> listIncidencias = (List<Incidencias>)query.getResultList();
        for(Incidencias incidencias: listIncidencias) {
            json += "{\"idIncidencia\":\"" + incidencias.getIdIncidencia() + "\",\"idUsuario\":\"" + incidencias.getIdUsuario() +
                    "\",\"idOficina\":\"" + incidencias.getIdOficina().getIdOficina() + "\",\"nombreOficina\":\"" + incidencias.getIdOficina().getNombreOficina() +
                    "\",\"idActivo\":\"" + incidencias.getIdActivo().getIdActivo() + "\",\"numeroSerie\":\"" + incidencias.getIdActivo().getNumeroSerie() +
                    "\",\"tipoIncidencia\":\"" + incidencias.getTipoIncidencia() + "\",\"descripcion\":\"" + incidencias.getDescripcion() +
                    "\",\"fecha\":\"" + incidencias.getFecha() + "\"" +
                    "},";
        }
        json = json.substring(0, json.length() - 1);
        json+="]";
        return json;
    }
No sé si habrá una mejor manera de resolverla, pero yo así pude resolver mi problema.

Etiquetas: campos, ciertos, json, string
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:14.