Rumah  >  Artikel  >  Java  >  ## Mengapakah Data Spring Saya JPA @Query Update Tidak Mencerminkan dalam Entiti?

## Mengapakah Data Spring Saya JPA @Query Update Tidak Mencerminkan dalam Entiti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 10:39:02513semak imbas

## Why is My Spring Data JPA @Query Update Not Reflecting in the Entity?

Tidak Mengemas kini Menggunakan Spring Data JPA @Query

Dalam Spring Data JPA, pertanyaan kemas kini yang disediakan gagal mengemas kini entiti, mengakibatkan kegagalan ujian.

Walaupun melaksanakan pengubahsuaian yang diperlukan pada pertanyaan untuk menggunakan nilai berparameter, medan yang dikemas kini kekal tidak terjejas, mengekalkan nilai awalnya. Menambah operasi siram sejurus sebelum operasi cari juga tidak menyelesaikan isu.

Setelah meneliti pernyataan SQL yang dijana, anda dapati bahawa pertanyaan kemas kini dilaksanakan dengan betul, tetapi pertanyaan yang mendapatkan semula entiti yang diubah suai nampaknya diabaikan. Ini mencadangkan isu caching yang berpotensi.

Walau bagaimanapun, apabila menambah panggilan kepada pencari lain, nilai yang dikemas kini ditunjukkan dalam objek yang diambil. Tingkah laku ini tidak konsisten dan tidak dijangka.

Selain itu, pernyataan SQL yang mendapatkan semula entiti yang diubah suai termasuk klausa had 2, walaupun diandaikan bahawa Spring Data hendaklah sentiasa menggunakan klausa had 1 apabila mengembalikan objek tunggal.

Menariknya, apabila melaksanakan penyataan SQL yang dijana secara manual dalam klien MySQL, logik berfungsi dengan sempurna, menimbulkan persoalan mengapa tingkah laku ini tidak ditunjukkan secara konsisten di peringkat Java.

Punca isu ini terletak pada tingkah laku lalai EntityManager, yang tidak mengepam perubahan secara automatik. Untuk menyelesaikannya, pilihan clearAutomatically harus didayakan dalam anotasi @Modifying, memastikan perubahan dipadamkan serta-merta selepas pertanyaan kemas kini.

Atas ialah kandungan terperinci ## Mengapakah Data Spring Saya JPA @Query Update Tidak Mencerminkan dalam Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn