Saya cuba menyimpan 6 ulasan dalam jadual Komen pangkalan data menggunakan kunci asing pada id siaran, tetapi 3 ulasan terakhir menimpa 3 ulasan pertama dengan kunci asing yang baru ditambah.
Kategori ujian:
Comments comments = new Comments("1st Comment", new Date(System.currentTimeMillis())); Comments comments2 = new Comments("2st Comment", new Date(System.currentTimeMillis())); Comments comments3 = new Comments("3st Comment", new Date(System.currentTimeMillis())); ArrayList<Comments> arrayList = new ArrayList<>(); arrayList.add(comments); arrayList.add(comments2); arrayList.add(comments3); // Insert Without Comment Post post1 = new Post("1st Post", "1st Post Description", new ArrayList<Comments>(), new Date(System.currentTimeMillis())); postReposetory.save(post1); // Insert With Comment Post post2 = new Post("2st Post", "2st Post Description", arrayList, new Date(System.currentTimeMillis())); postReposetory.save(post2); // Update (Insert Comment) post1.setComments(arrayList); post1.setUpdatedAt(new Date(System.currentTimeMillis())); postReposetory.save(post1);
Anda mencipta sejumlah 3 contoh ulasan (jadi 3 rekod dalam jadual pangkalan data) dan bukannya 3 kejadian setiap siaran.
Apabila anda mengemas kini ulasan post1, anda akan mempunyai ulasan post2 sebagai parameter, jadi kunci asing dari ulasan ke post2 akan bertukar kepada post1.
Jika anda mahukan 3 ulasan setiap siaran, anda memerlukan 6 contoh ulasan secara keseluruhan (2 siaran * 3 ulasan) .
Ini berlaku kerana anda meletakkan objek anotasi yang sama dan kemudian hibernate fikir anda mahu menyambungkan anotasi daripada
post2
更改为post1
.Jadi anda perlu membina semula tiga anotasi ini.
Ini mencipta tiga lagi objek untuk ulasan.