Итак, у меня есть веб-приложение, использующее Spring Framework. Я обрабатываю свои данные в спящем режиме, и до сих пор у меня не было никаких проблем. Я написал оператор получения сообщения в JS, и данные, которые он возвращает, верны. Данные представляют собой массив строк. Он возвращает правильно выглядящий массив в правильном порядке. Проблема в том, что когда я просматриваю данные сразу после массива, они находятся в другом порядке. Это так сбивает с толку, потому что я даже не вмешиваюсь в порядок массива, и у меня нет других запросов на выборку по URL-адресу. Я понятия не имею, какой код здесь отображать, потому что мой Java - простой объект передачи для сохранения в реальный объект. JS - это fetch(url,{...}).then(response => response.json()).then(data(This displays the correct array order) => {});
. Залил правильно и все. Это странно, потому что данные, которые он возвращает, верны, а данные в базе данных неверны. Я делал это несколько раз раньше, и в этих случаях у меня никогда не было проблем.
Код контроллера
@RequestMapping(value="/editComment", method = RequestMethod.POST)
public Comment editComment(@RequestBody EditCommentDTO editCommentDTO) {
return commentService.editComment(editCommentDTO);
}
CommentService
public Comment editComment(EditCommentDTO editCommentDTO) {
Comment com = findById(editCommentDTO.getComId());
com.setBody(editCommentDTO.getBody());
System.out.println(save(com)); //Save goes to another function in the service that only executes commentRepository.save(com)
return save(com);
}
Комментарий
@Entity
public class Comment {
(Extra stuff here such as id postId, userId)
@ElementCollection
private List<String> body;
(Getters and setters)
}
EditCommentDTO
public class EditCommentDTO {
private List<String> body;
private Long comId;
public List<String> getBody() {
return body;
}
public void setBody(List<String> body) {
this.body = body;
}
public Long getComId() {
return comId;
}
public void setComId(Long comId) {
this.comId = comId;
}
}
JS
console.log(stuff); //stuff is an array of strings
var jsonArray = JSON.parse(JSON.stringify(stuff));
console.log(jsonArray);
const data = { body: jsonArray, comId: comId};
fetch('http://localhost:8080/editComment', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
console.log(data); //Displays the correct data
$.getJSON("http://localhost:8080/getComments" function(cData){
console.log(cData); //Displays the wrong data even though it should be the same as data
});
})
.catch((error) => {
console.error('Error:', error);
errorPlace(error);
});