I implemented this in my base data object class:

    public boolean hasKeyChangedFromCommittedSnapshot(String key) {

        ObjectStore objectStore =
((DataContext)getObjectContext()).getObjectStore(); // Need the object
store to access the snapshot data.

        DataRow dataRow = objectStore.getSnapshot(getObjectId()); // Get
the snapshot data.

        EntityResolver resolver = getObjectContext().getEntityResolver();

        ObjEntity entity = resolver.getObjEntity(getObjectId
().getEntityName());

        ObjAttribute attribute = entity.getAttribute(key);

        String dbAttributeName  = attribute.getDbAttributeName();

        String objAttributeName = attribute.getName();

        Object dataRowValue = (dataRow != null) ? dataRow.get(
dbAttributeName) : null;

        Object currentValue = readPropertyDirectly(objAttributeName);



        return (!Util.nullSafeEquals(dataRowValue, currentValue));

    }


On Tue, Feb 14, 2017 at 9:04 AM, Hugi Thordarson <[email protected]> wrote:

> Hi all,
> is there some easy way for me in Cayenne to get information (for example a
> Map) about changes that have been made to a DataObject since it was fetched?
>
> Cheers,
> - hugi

Reply via email to