Получить процедуру временной таблицы с N столбцами и динамически вставить в контроллер Ajax - PullRequest
0 голосов
/ 27 октября 2019

Мне нужно получить список из хранимой процедуры в mysql, сгенерированной динамически, поэтому я не знаю, сколько столбцов есть. После этого я должен поставить его на контроллер Ajax и показать таблицу с библиотекой Datatables/JQuery.

вот код, который я использую, когда точно знаю, сколько у меня столбцов (статический):

Контроллер:

public List<RiepilogoImpegniVPC_CAP> listAllRiepilogoImpegniVPC_CAP(Integer anno,
  String capitolo) {

StoredProcedureQuery query = entityManager
    .createStoredProcedureQuery("Sp_RiepilogoImpegniVPC_CAP")
    .registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
    .registerStoredProcedureParameter(2, String.class, ParameterMode.IN)
    .setParameter(1, anno)
    .setParameter(2, capitolo);

query.execute();

List<Object[]> risultatoTemp = query.getResultList();
List<RiepilogoImpegniVPC_CAP> risultato = new ArrayList<>();
risultatoTemp.forEach(item -> {
  RiepilogoImpegniVPC_CAP temp = new RiepilogoImpegniVPC_CAP(
      (String) item[0], (String) item[1], (String) item[2], (String) item[3], (String) item[4],
      (String) item[5], (String) item[6], (String) item[7], (String) item[8], (String) item[9],
      (String) item[10], (String) item[11], (String) item[12], (String) item[13],
      (String) item[14],
      (String) item[15], (String) item[16], (String) item[17], (String) item[18],
      (String) item[19],
      (String) item[20], (String) item[21], (String) item[21]);

  risultato.add(temp);
});

return risultato;  }

Модель (без сущности)

открытый класс RiepilogoImpegniVPC_CAP {

private String indice;
  private String anno;
  private String totale;
  private String pdc1;
  private String pdc2;
  private String pdc3;
  private String pdc4;
  private String pdc5;
  private String pdc6;
  private String pdc7;
  private String pdc8;
  private String pdc9;
  private String pdc10;
  private String pdc11;
  private String pdc12;
  private String pdc13;
  private String pdc14;
  private String pdc15;
  private String pdc16;
  private String pdc17;
  private String pdc18;
  private String pdc19;
  private String pg;

Контроллер Ajax:

@PostMapping("riepilogoImpegniVPCCAPdetailsList")
  public DataTablesOutput<RiepilogoImpegniVPC_CAP> riepilogoImpegniVPCCAPdetailsList(
      @RequestParam("annoEsercizio") Integer annoEsercizio,
      @RequestParam("capitolo") String capitolo) {

    List<RiepilogoImpegniVPC_CAP> result = riepilogoImpegniVPCService
        .listAllRiepilogoImpegniVPC_CAP(annoEsercizio, capitolo);
    DataTablesOutput<RiepilogoImpegniVPC_CAP> output = new DataTablesOutput<>();
    output.setDraw(1);
    output.setData(result);
    output.setRecordsTotal(result.size());

    return output;
  }

Контроллер Ajax в jsp

ajax: {
        contentType: 'application/json',
        url: 'riepilogoImpegniVPCCAPdetailsList?annoEsercizio=${annoEsercizio}&capitolo=${capitolo}',
        type: 'POST',
        data: function (data) {
          return JSON.stringify(data);
        }
      },
      columns: [
        {
          data: "indice"
        },
        {
          data: "anno"
        },
        {
          data: "totale"
        },
        {
          data: "pdc1"
        },
        {
          data: "pdc2"
        },
        {
          data: "pdc3"
        },
        {
          data: "pdc4"
        },
        {
          data: "pdc5"
        },
        {
          data: "pdc6"
        },
        {
          data: "pdc7"
        },
        {
          data: "pdc8"
        },
        {
          data: "pdc9"
        },
        {
          data: "pdc10"
        },
        {
          data: "pdc11"
        },
        {
          data: "pdc12"
        },
        {
          data: "pdc13"
        },
        {
          data: "pdc14"
        },
        {
          data: "pdc15"
        },
        {
          data: "pdc16"
        },
        {
          data: "pdc17"
        },
        {
          data: "pdc18"
        },
        {
          data: "pdc19"
        },
        {
          data: "pg"
        }
      ]
    });
  });

Могу ли я получить некоторую помощь?

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