Package org.apache.cayenne

## Class DataRow

- java.lang.Object
- - java.util.AbstractMap<K,​V>
  - - java.util.HashMap<String,​Object>
    - - org.apache.cayenne.DataRow

- All Implemented Interfaces:
    `Serializable`, `Cloneable`, `Map<String,​Object>`

      public class DataRow
      extends HashMap<String,​Object>

  DataRow a map that holds values retrieved from the database for a given query row. DataRows are used to cache raw database data and as a reference point for tracking DataObject changes.
  Since:
    1.1
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.util.AbstractMap

      `AbstractMap.SimpleEntry<K extends Object,​V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,​V extends Object>`

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `Map.Entry<K extends Object,​V extends Object>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `entityName` |
    `protected long` | `replacesVersion` |
    `protected long` | `version` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DataRow​(int initialCapacity)` |
    `DataRow​(Map<String,​?> map)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `DataRow` | `applyDiff​(DataRow diff)` | Builds a new DataRow, merging changes from `diff` parameter with data contained in this DataRow.
    `DataRow` | `createDiff​(DataRow row)` | Creates a DataRow that contains only the keys that have values that differ between this object and `row` parameter.
    `ObjectId` | `createTargetObjectId​(String entityName, DbRelationship relationship)` | Returns an ObjectId of an object on the other side of the to-one relationship, for this DataRow representing a source of relationship.
    `String` | `getEntityName()` |
    `long` | `getReplacesVersion()` |
    `long` | `getVersion()` |
    `void` | `setEntityName​(String entityName)` |
    `void` | `setReplacesVersion​(long replacesVersion)` | Sets the version of DataRow replaced by this one in the store.
    `String` | `toString()` |

    - ### Methods inherited from class java.util.HashMap

      `clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

    - ### Methods inherited from class java.util.AbstractMap

      `equals, hashCode`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Map

      `equals, hashCode`

- - ### Field Detail

    - #### version

          protected long version

    - #### replacesVersion

          protected long replacesVersion

    - #### entityName

          protected String entityName

      Since:
        3.0

  - ### Constructor Detail

    - #### DataRow

          public DataRow​(Map<String,​?> map)

    - #### DataRow

          public DataRow​(int initialCapacity)

  - ### Method Detail

    - #### getVersion

          public long getVersion()

    - #### getReplacesVersion

          public long getReplacesVersion()

    - #### setReplacesVersion

          public void setReplacesVersion​(long replacesVersion)

      Sets the version of DataRow replaced by this one in the store.

    - #### applyDiff

          public DataRow applyDiff​(DataRow diff)

      Builds a new DataRow, merging changes from `diff` parameter with data contained in this DataRow.

    - #### createDiff

          public DataRow createDiff​(DataRow row)

      Creates a DataRow that contains only the keys that have values that differ between this object and `row` parameter. Diff values are taken from the `row` parameter. It is assumed that key sets are compatible in both rows (e.g. they represent snapshots for the same entity). Returns null if no differences are found.

    - #### createTargetObjectId

          public ObjectId createTargetObjectId​(String entityName,
                                               DbRelationship relationship)

      Returns an ObjectId of an object on the other side of the to-one relationship, for this DataRow representing a source of relationship. Returns null if snapshot FK columns indicate a null to-one relationship.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractMap<String,​Object>`

    - #### getEntityName

          public String getEntityName()

      Since:
        3.0

    - #### setEntityName

          public void setEntityName​(String entityName)

      Since:
        3.0