Мне нужно получить список из хранимой процедуры в 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"
}
]
});
});
Могу ли я получить некоторую помощь?