0
リクエストから新しいデータを更新したいと思います。spring jpaは新しいデータを更新しません
リクエストJSONデータは次のようになります。
[{"media_id : 1, "path" : "some path", ...}, {"media_id : 2, "path" : "some path", ...}]
これらの主キーは、すでに
だから、それはそれらの行を更新するデータベースに存在し、私がチェックアウトした古いデータ
をそれは
を更新する必要がある。しかし、デバッグログの更新SQLのみを更新しますメディアオブジェクトには要求の新しいデータが含まれています
しかし、まだ古いデータで更新を試みています
私の間違いは何ですか?
private List<Media> upsertMedia(SquarePostDetailResource postToUpsert) {
List<Media> media = postToUpsert.getContent().getMedia();
media.forEach((item) -> {
item.setCreatedAt(item.getId() == null ? new Date() : item.getCreatedAt());
item.setModifiedAt(new Date());
item.setMember(Member.builder().id(postToUpsert.getMemberId()).build());
item.setSquare(Square.builder().id(postToUpsert.getSquareId()).build());
item.setSquarePost(SquarePost.builder().id(postToUpsert.getPostId()).build());
});
return (List<Media>) mediaRepo.save(media);
}
バネデータの保存方法jpaは、主キーが定義されている場合、データベースを更新します。 saveメソッドが呼び出されると、コンソールログからupdate sqlが表示されます。 しかし、私の問題は、更新すべきフィールドが新しいデータではなく古いデータであるということです。 –
フィールドmodifiedAtにupdateステートメントの 'new Date()'値がないことを意味しますか? – lzagkaretos
forループの後で、 'mediaRepo.save(media);の前に' List media = postToUpsert.getContent()。getMedia();を試すこともできます。 –
lzagkaretos