Я довольно новичок в Java и JSON в целом, и у меня возникла проблема с этим сценарием.Вот и мы:
Я должен отправить файл JSON, который запустит 2 хранимые процедуры.Первый SP записывает данные в таблицу заголовков, а другой использует значение курсора, возвращаемое первым SP, для записи в детальную таблицу любое количество раз.
Я определяю свой JSON-файл следующим образом, который может иметь любое количество массивов подробных объектов (для практических целей я просто тестирую с 2).
Мой заголовок SP пишет правильно ивозвращает значение курсора, которое мне нужно записать в мою таблицу данных.Проблема в моем подробном SP, который записывает только значения первого массива, игнорируя второй.Другими словами, код не выполняет итерацию по всем определенным значениям массива.
Кроме того, мой StackTrace дает мне оба:
Как правильно написать предложение FOR, чтобы оно перебирало все значения моего массива объектов-подробностей?
Спасибо за потраченное время!
ОПРЕДЕЛЕНИЕ POJO:
HeaderPOJO:
Частная строковая компания;
Частная строкаname;
private Подробности списка;
DetailPOJO:
private String company;
private String group;
private int id;
JSON SENT: {
"company":"1",
"name":"somedude",
"detail":[
{
"company":"1",
"group":"AB",
"id":1
},
{
"company":"1",
"group":"AC",
"id":2
}
]
}
SNIPPET КОДА JAVA:
public int dostuff (@RequestBody dostuffsavestuffH) {
ResultSet rs = null;
Connection con = null;
int cursorreturned = 0;
try
{
java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ());
con = DriverManager.getConnection("WORKING CONNECTION");
Statement st = con.createStatement();
rs = st.executeQuery("call stored.procedure1(HEADER PARAMETERS)");
while(rs.next())
{
cursorreturned = rs.getInt("SP Cursor"); //THIS IS A VALUE RETURNED BY MY SP WHICH I NEED FOR MY DETAILS TABLE
}
for(DetailPOJO savestuffD:savestuffH.getDetail())
{
rs = st.executeQuery("call stored.procedure2('" + savestuffD.getCompany() + "', " + cursorreturned + ", '" + savestuffD.getGroup() + "', " + savestuffD.getid() + ")");
}
}
}