Hibernasi menjadi lama/baru untuk log audit

Saya ingin mencatat perubahan beberapa entitas. jadi saya menggunakan interseptor hibernasi onflushdirty.

tapi keadaan sebelumnya selalu kosong atau nol

setelah beberapa pencarian saya menemukan 2 cara untuk mendapatkan nilai lama/sebelumnya:

1- buka sesi temporer baru dan temukan kacangnya lagi

2- agar PreviousStates[] tidak kosong, saya harus menggunakan penggabungan alih-alih menyimpan/memperbarui. (sebenarnya tidak yakin apakah ini benar dan tidak tahu apa yang akan terjadi dengan perilaku sistem sebenarnya...)

apakah ada cara lain yang lebih baik untuk melakukan itu?


person Yichaoz    schedule 01.12.2011    source sumber


Jawaban (1)


Jika Anda hanya memanggil update dengan objek yang telah Anda buat, keadaan sebelumnya akan kosong. Anda harus memuat/mendapatkan objek terlebih dahulu dan kemudian mengubah propertinya (dalam kode reguler kami bukan di interseptor), dengan melakukan ini Anda akan mendapatkan keadaan sebelumnya. Penggabungan mencapai hal yang sama.

person gkamal    schedule 01.12.2011