Flush () yöntemi hakkında bilgi topluyordum, ancak onu ne zaman ve nasıl doğru şekilde kullanacağımı tam olarak bilmiyorum. Okuduğum kadarıyla, benim anladığım kadarıyla, kalıcılık bağlamının içeriğinin veri tabanı ile senkronize edileceği, yani bekleyen beyanlar yayınlayarak veya varlık verilerini tazeleyecek.
Şimdi iki varlıklı A
ve B
(bire bir ilişki içinde, ancak JPA tarafından zorlanmayan veya modellenen) aşağıdaki senaryoyu aldım . A
manuel olarak ayarlanan ve ayrıca otomatik oluşturulmuş bir KİMLİK alanına sahip bir bileşik PK'ye sahiptir recordId
. Bu recordId
, B
yabancı anahtar olarak varlığa yazılmalıdır A
. Tasarruf ediyorum A
ve B
tek bir işlemde. Sorun otomatik oluşturulan değer olduğunu A.recordId
ben açık bir çağrı yapmak sürece, işlem içinde kullanılamaz em.flush()
çağırdıktan sonra em.persist()
üzerine A
. (Otomatik oluşturulmuş bir IDENTITY PK'm varsa, değer doğrudan varlıkta güncellenir, ancak burada durum böyle değildir.)
Can em.flush()
bir hareket içinde onu kullanırken herhangi bir zararı?