Son kayıttan bu yana hiçbir değişiklik yapılmadığında birleştiğim herhangi bir varlığı kaydetmemek için bir yöntem arıyorum. Bunun, Envers'in normal davranışı olması gerektiğine karar verdim (herhangi bir değişiklik yoksa denetim yok).Hazırda bekletme yok bir değişiklik oluştururken bir kayıt oluşturma
Öğeler yalnızca @Audited
ek açıklamalarına sahiptir, ancak son denetimden beri değişiklik olmadığında bile denetime devam ederler. Bu benim persitence.xml
konfigürasyonu: Ben bu Hibernate Envers: Auditing an object, calling merge on it, gives an audit record EVERY time even with no change? bulduk ama cevap yok
<property name="org.hibernate.envers.revision_field_name" value="revision" />
<property name="org.hibernate.envers.revision_type_field_name" value="revision_type" />
<property name="org.hibernate.envers.revision_on_collection_change" value="false"/>
<property name="org.hibernate.envers.store_data_at_delete" value="true"/>
.
Bazı equals()/hascode()
yöntemlerim yalnızca kimlikler için (birincil anahtarlar) sınanıyor, ancak bunun nasıl ilişkilendirilebileceği konusunda bir konu bulamadım.
Ayrıca, hangi alanın değiştiğini görmek için yeni bir parametre olduğunu gördüm, ancak bunun benim de sorunumla ilgili olduğunu sanmıyorum.
Eğer önemliyse Postgresql kullanıyorum.
Bu davranış için herhangi bir fikir var mı? Şu an için sahip olduğum tek çözüm, varlığı entityManager
aracılığıyla almak ve bunları karşılaştırmaktır (eğer buna göre bazı yansıma tabanlı API kullanacağım).
Kendi sorunuza verilen yanıt için teşekkürler! Benzer bir sorunla karşı karşıyayım ve güncellemeyi orijinal ile karşılaştırarak bir sorun yaşıyorum. İzleme sütunlarımı ayarlamak için bir Hibernate MergeEventListener kullanıyorum ancak büyük sorunum MergeEvent "orijinal" nesnesinin "varlık" ile aynı olmasıdır. Yani Yönetilen bir nesne olduğu için zaten güncellemeler uygulandı. Lütfen çözümünüzü paylaşır mısınız? – Dagmar
Üzgünüz, yorumunuzu gönderdiğinizde müsait değildim. Bir çözüm bulduğuna sevindim, cevabımı, sorunu özmek için yaptığım şeyi de içerecek şekilde düzenleyeceğim, ama çözümünüz de iyi görünüyor. – Asoub