From dev-return-9345-apmail-openjpa-dev-archive=openjpa.apache.org@openjpa.apache.org Tue Oct 14 13:57:33 2008 Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 73895 invoked from network); 14 Oct 2008 13:57:33 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Oct 2008 13:57:33 -0000 Received: (qmail 30565 invoked by uid 500); 14 Oct 2008 13:57:33 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 30532 invoked by uid 500); 14 Oct 2008 13:57:33 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 30520 invoked by uid 99); 14 Oct 2008 13:57:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Oct 2008 06:57:33 -0700 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of lists+1214986235816-210739@n2.nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Oct 2008 13:56:25 +0000 Received: from tervel.nabble.com ([192.168.236.150]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1KpkOT-0004HX-3g for dev@openjpa.apache.org; Tue, 14 Oct 2008 06:57:01 -0700 Message-ID: <1223992621109-1332610.post@n2.nabble.com> Date: Tue, 14 Oct 2008 06:57:01 -0700 (PDT) From: is_maximum To: dev@openjpa.apache.org Subject: how to get dirty fields MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_29730_32266864.1223992621108" X-Nabble-From: mnrz57@gmail.com X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_29730_32266864.1223992621108 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, We are planning to implement a tracking system in which we are using LifecycleListeners of OpenJpa. The problem is that the state manager of OpenJpa doesn't return only dirty fields but all the fields. Here is the snippet code to retrieve the required fields: public static String getDirtyFields(Object object) { OpenJPAEntityManager entityManager = OpenJPAPersistence.getEntityManager(object);//TODO: or EntityManager PersistenceCapable persistenceCapable = ImplHelper.toPersistenceCapable(object, entityManager); OpenJPAStateManager stateManager = (OpenJPAStateManager)persistenceCapable.pcGetStateManager(); ClassMetaData metaData = stateManager.getMetaData(); BitSet dirty = stateManager.getDirty(); int i = dirty.nextSetBit(0); String output = ""; while(i != -1) { String fieldName = stateManager.getMetaData().getField(i).getName(); String fieldValue = stateManager.getMetaData().getField(i).getValue().toString(); output = output + "FieldName: "+ fieldName+ ", FieldValue: "+ fieldValue+ "\n"; i= dirty.nextSetBit(i+1); } return output; } Is there anything wrong with this code? thanks -- View this message in context: http://n2.nabble.com/how-to-get-dirty-fields-tp1332610p1332610.html Sent from the OpenJPA Developers mailing list archive at Nabble.com. ------=_Part_29730_32266864.1223992621108--