Kemas kini Pernyataan Tidak Membilas?
Anotasi @Query Data Musim Bunga JPA membenarkan pertanyaan tersuai dilaksanakan. Dalam coretan kod yang disediakan, pertanyaan @Modifying digunakan untuk mengemas kini entiti Pentadbir. Walau bagaimanapun, perubahan yang dibuat melalui pertanyaan ini tidak diteruskan ke pangkalan data.
Peranan Flushing
Secara lalai, EntityManager tidak mengepam perubahan secara automatik. Ini bermakna bahawa perubahan yang dibuat melalui pertanyaan @Modifying hanya akan ditunjukkan dalam cache setempat EntityManager, tetapi ia tidak akan diteruskan ke pangkalan data sehingga EntityManager disiram secara eksplisit.
Penyelesaian: Force Flushing
Untuk memastikan perubahan yang dibuat melalui pertanyaan @Modifying dikekalkan pada pangkalan data, tambahkan pilihan clearAutomatically = true pada anotasi @Modifying. Ini akan memaksa EntityManager untuk membuang perubahan secara automatik selepas setiap operasi tulis, memastikan pangkalan data dikemas kini dengan segera.
Pertanyaan Diubahsuai:
<code class="java">@Modifying(clearAutomatically = true) @Transactional @Query("UPDATE Admin SET firstname = :firstname, lastname = :lastname, login = :login, superAdmin = :superAdmin, preferenceAdmin = :preferenceAdmin, address = :address, zipCode = :zipCode, city = :city, country = :country, email = :email, profile = :profile, postLoginUrl = :postLoginUrl WHERE id = :id") public void update(@Param("firstname") String firstname, @Param("lastname") String lastname, @Param("login") String login, @Param("superAdmin") boolean superAdmin, @Param("preferenceAdmin") boolean preferenceAdmin, @Param("address") String address, @Param("zipCode") String zipCode, @Param("city") String city, @Param("country") String country, @Param("email") String email, @Param("profile") String profile, @Param("postLoginUrl") String postLoginUrl, @Param("id") Long id);</code>
Tambahan Pertimbangan:
Atas ialah kandungan terperinci Mengapa Kenyataan Kemas Kini Saya Tidak Membilas dalam JPA Data Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!