Saya datang ke sini mencari jawaban yang sama. Ternyata masalahnya adalah JPA tidak tahu bahwa objek Anda kotor. Ini diselesaikan dengan menerapkan metode equals()/hashcode() pada objek kompleks ini. Dalam contoh Anda, terapkan equals dan hashcode untuk ProjectProperty
Setelah selesai, JPA dapat mengidentifikasi melalui metode ini bahwa objek yang mendasarinya kotor dan diubah dan tetap ada.