2013-01-02 22 views
13

बदल चुके फ़ील्ड प्राप्त करें मेरे पास एक जटिल डीबी संरचना है जिसे मैं ऑडिट करने की कोशिश कर रहा हूं। वर्तमान में मेरे पास Envers चल रहा है और यह प्रत्येक ऑब्जेक्ट में किए गए परिवर्तनों का ऑडिट करता है। यह वास्तव में अच्छी तरह से काम करता है!हाइबरनेट प्रवेश -

अब मैं यूआई पर कुछ लेखापरीक्षा जानकारी दिखाना चाहता हूं। ऑब्जेक्ट्स/टेबल काफी जटिल हो जाते हैं इसलिए मैं यह देखने का एक तरीका ढूंढ रहा था कि ऑडिट में कौन से फ़ील्ड बदल गए हैं। वर्तमान में Envers एक संशोधन आईडी के साथ मुद्रित प्रत्येक वस्तु का एक स्नैपशॉट स्टोर करता है। मैं प्रत्येक ऑब्जेक्ट के संशोधन को देख सकता हूं और उसके बाद मैन्युअल रूप से पूछताछ कर सकता हूं कि क्या बदल गया है, लेकिन मैं सोच रहा था कि अगर कोई तरीका था तो मैं Envers प्राप्त कर सकता हूं ताकि कौन से फ़ील्ड बदल गए हों। क्या यह संभव है? मुझे 2011 से this लिंक मिला और यह प्रत्येक ऑब्जेक्ट फ़ील्ड को मैन्युअल रूप से जांचने की अनुशंसा करता है। मेरी चिंता यहाँ गति है। मेरे पास बहुत सारी वस्तुएं हैं और मेरे पास केवल एक अपडेटेड फ़ील्ड हो सकता है। बदले गए एक को खोजने के लिए मुझे बहुत से क्षेत्रों से पूछना होगा।

क्या बदल गए फ़ील्ड को स्टोर करना संभव है?

धन्यवाद

संपादित

मैंने कहा जाना चाहिए था कि मैं REVCHANGES तालिका का उपयोग कर रहा तो मैं देख सकते हैं कि क्या संशोधन पर बदल गया है लेकिन फिर यह केवल इकाई स्तर नहीं क्षेत्र के स्तर पर है

+1

इस के लिए +1 - वर्तमान में हम एक तालिका में वर्ष onPostUpdate श्रोता का उपयोग कर रहे एक diff करने के लिए और diff रिकॉर्डिंग जब अपडेट किया जाता है। आदर्श रूप से पूछताछ में पूछताछ हमें बताएगी: 1. क्या बदल गया है और अतिरिक्त क्रेडिट के लिए: 2. यह क्या बदल गया है और – ndtreviv

उत्तर

9

नए एनवर संस्करणों में आप ट्रैक कर सकते हैं कि बूलियन ध्वज का उपयोग करके प्रत्येक संशोधन में कौन सी गुण बदल गए हैं। देखें:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-tracking-properties-changes

+4

इससे समस्या यह है कि जहां तक ​​मैं कह सकता हूं, इस जानकारी को प्रोग्रामेटिक रूप से जांचने का कोई तरीका नहीं है। आप केवल लेखा परीक्षा प्रश्नों में इसका उपयोग कर सकते हैं। इससे आपके द्वारा लाए गए संशोधनों को सीमित करने में मदद मिलती है, लेकिन यह सुनिश्चित करने में कोई मदद नहीं है कि क्या हुआ है इसका एक लॉग प्रदर्शित करना। यदि मैं मूल पोस्टर को सही समझता हूं, और अपनी खुद की समस्या के लिए, मुझे इन झंडे तक पहुंचने का एक तरीका चाहिए संशोधन के बाद लोड किया गया है, इसलिए मैं उपयोगकर्ता को स्पष्ट रूप से दिखा सकता हूं कि क्या बदल गया। अन्यथा लॉग बेकार है क्योंकि यह पता लगाने में काफी समय लगता है कि क्या बदल गया है। – user3402489