Сопоставление JSON с сущностью с отношением oneToMany - PullRequest
0 голосов
/ 11 октября 2018

я работаю над проектом внешнего интерфейса в jsf, java.Мое приложение потребляет остаток API, который дает мне JSON.Я должен сопоставить этот JSON с сущностью.Моя проблема в том, что одна из моих сущностей имеет отношение один ко многим с другой сущностью, и я не знаю, как отобразить это.

У меня есть сущность Usuario:

public class usuario {

    private String usuario_pk;
    private String codigo;
    private List<penca> pencas;
    ...}

СущностьPenca:

public class penca {

    private String penca_pk;
    private String codigo;
...}

JSON, который получает мое приложение, выглядит так:

   {"usuario_pk":"3",
   "codigo":"terry",
    "pencas":[{"penca_pk":"1","codigo":"penca1"}]}

Чтобы соединиться с API, выполните GET и сопоставьте JSON с сущностью im, используя это:

import com.constantes.constantes;
import com.entity.usuario;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

public class restClient {
    private static final Logger LOGGER = Logger.getLogger(restClient.class.getName());

    private restClient() {
    }

    public static WebTarget getWebTarget(String service) {
        Client client = getClient();
        WebTarget target = client.target(constantes.url+"/"+service+"/");

        return target;
    }

    private static Client getClient() {
        Client client = ClientBuilder.newClient();
        return client;
    }

    public static <T> T invokeGet(WebTarget webTarget,Class<T> responseType, String primaryKey)  {

        Response response = webTarget.queryParam("pk", primaryKey).request(MediaType.APPLICATION_JSON).get(); 
        return respond(response, responseType);   
    }

    private static <T> T respond(Response response, Class<T> responseType)  {
        if (responseType == null){
            return null;
        } else if (responseType.isArray()) {
            return (T) response.readEntity(new GenericType<>(responseType));
        } else {
            return response.readEntity(responseType);
        }
    }
}

Сопоставление JSON с сущностью без отношения работает нормально, но проблема в том, что у сущности есть отношение.Кто-то может сказать мне возможное решение?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...