Saya sedang mengumpulkan informasi tentang metode flush (), tetapi saya tidak begitu jelas kapan harus menggunakannya dan bagaimana menggunakannya dengan benar. Dari apa yang saya baca, pemahaman saya adalah bahwa konten konteks ketekunan akan disinkronkan dengan database, yaitu mengeluarkan pernyataan yang luar biasa atau menyegarkan data entitas.
Sekarang saya mendapat skenario berikut dengan dua entitas Adan B(dalam hubungan satu-ke-satu, tetapi tidak diberlakukan atau dimodelkan oleh JPA). Amemiliki PK gabungan, yang disetel secara manual, dan juga memiliki bidang IDENTITAS yang dibuat secara otomatis recordId. Ini recordIdharus ditulis ke entitas Bsebagai kunci asing ke A. Saya menabung Adan Bdalam satu transaksi. Masalahnya adalah bahwa nilai yang dihasilkan otomatis A.recordIdtidak tersedia dalam transaksi, kecuali saya membuat panggilan eksplisit em.flush()setelah menelepon em.persist()di A. (Jika saya memiliki IDENTITAS PK yang dibuat secara otomatis, maka nilainya langsung diperbarui di entitas, tetapi tidak demikian di sini.)
Apakah bisa em.flush()menyebabkan kerugian saat menggunakannya dalam transaksi?