Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.meta.strats
Class RelationRelationMapTableFieldStrategy

    java.lang.Object
      org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
          org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy
              org.apache.openjpa.jdbc.meta.strats.ContainerFieldStrategy
                  org.apache.openjpa.jdbc.meta.strats.MapTableFieldStrategy
                      org.apache.openjpa.jdbc.meta.strats.RelationRelationMapTableFieldStrategy

All Implemented Interfaces:
  Serializable, FieldStrategy, Strategy, LRSMapFieldStrategy

    public class RelationRelationMapTableFieldStrategy

extends MapTableFieldStrategy

Mapping for a map whose keys and values are both relations to other persistent objects.

Since:
  0.4.0, 1.1.0
Author:
  Abe White
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy
`field`

Constructor Summary
`RelationRelationMapTableFieldStrategy()`

Method Summary
`void` | `delete(OpenJPAStateManager sm, JDBCStore store, RowManager rm)` Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates.
`Column[]` | `getKeyColumns(ClassMapping cls)` Return the columns holding data for a map key for the given key mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` or `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).
`Result[]` | `getResults(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, int eagerMode, Joins[] resJoins, boolean lrs)` Return results containing all keys and values for this map.
`Column[]` | `getValueColumns(ClassMapping cls)` Return the columns holding data for a map value for the given value mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` or `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).
`void` | `initialize()` Perform caching and other initialization operations.
`void` | `insert(OpenJPAStateManager sm, JDBCStore store, RowManager rm)` Set values for the mapping into the proper rows.
`Joins` | `joinKeyRelation(Joins joins, boolean forceOuter, boolean traverse)` Join this value's table to the table for the related first class object key type, if any.
`Joins` | `joinKeyRelation(Joins joins, ClassMapping key)` Invokes `FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)` by default.
`Joins` | `joinRelation(Joins joins, boolean forceOuter, boolean traverse)` Join this value's table to the table for the related first class object type, if any.
`Joins` | `joinValueRelation(Joins joins, ClassMapping val)` Invokes `FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)` by default.
`Object` | `loadKey(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins)` Load a key from the given result.
`Object` | `loadValue(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins)` Load a value from the given result.
`void` | `map(boolean adapt)` Map the owning mapping using this strategy.
`void` | `selectKey(Select sel, ClassMapping key, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)` Implement this method to select the keys of this field.
`void` | `selectValue(Select sel, ClassMapping val, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)` Implement this method to select the values of this field.
`Object` | `toDataStoreValue(Object val, JDBCStore store)` Translate the given external field value to its datastore equivalent.
`Object` | `toKeyDataStoreValue(Object val, JDBCStore store)` Translate the given key value to its datastore equivalent.
`void` | `update(OpenJPAStateManager sm, JDBCStore store, RowManager rm)` Set values for the mapping into the proper rows.

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.MapTableFieldStrategy
`deriveKey, deriveValue, getFieldMapping, getIndependentElementMappings, getIndependentKeyMappings, getIndependentValueMappings, getJoinForeignKey, getJoinForeignKey, handleMappedByForeignKey, isTypeUnjoinedSubclass, join, joinKey, load, loadKeyProjection, loadProjection, populateKey, supportsSelect`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.ContainerFieldStrategy
`appendIndex, appendIsEmpty, appendIsNotEmpty, appendIsNotNull, appendIsNull, appendJoinCount, appendSize, appendUnaliasedJoin`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy
`appendType, assertNotMappedBy, isEagerSelectToMany, isVersionable, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, where`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
`customDelete, customInsert, customUpdate, getAlias, isCustomDelete, isCustomInsert, isCustomUpdate`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.openjpa.jdbc.meta.FieldStrategy
`appendIndex, appendIsEmpty, appendIsNotEmpty, appendIsNotNull, appendIsNull, appendSize, appendType, isEagerSelectToMany, isVersionable, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, where`

Methods inherited from interface org.apache.openjpa.jdbc.meta.Strategy
`customDelete, customInsert, customUpdate, getAlias, isCustomDelete, isCustomInsert, isCustomUpdate`

Constructor Detail

### RelationRelationMapTableFieldStrategy

    public RelationRelationMapTableFieldStrategy()

Method Detail

### getKeyColumns

    public Column[] getKeyColumns(ClassMapping cls)

  Description copied from interface: `LRSMapFieldStrategy`
  Return the columns holding data for a map key for the given key mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` or `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).

### getValueColumns

    public Column[] getValueColumns(ClassMapping cls)

  Description copied from interface: `LRSMapFieldStrategy`
  Return the columns holding data for a map value for the given value mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` or `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).

### selectKey

    public void selectKey(Select sel,
                          ClassMapping key,
                          OpenJPAStateManager sm,
                          JDBCStore store,
                          JDBCFetchConfiguration fetch,
                          Joins joins)

  Description copied from interface: `LRSMapFieldStrategy`
  Implement this method to select the keys of this field. Elements of the result will be loaded with `LRSMapFieldStrategy.loadKey(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)`. This method is only used if the key is not derived from the value.

### selectValue

    public void selectValue(Select sel,
                            ClassMapping val,
                            OpenJPAStateManager sm,
                            JDBCStore store,
                            JDBCFetchConfiguration fetch,
                            Joins joins)

  Description copied from interface: `LRSMapFieldStrategy`
  Implement this method to select the values of this field. Elements of the result will be loaded with `LRSMapFieldStrategy.loadValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)`.

### getResults

    public Result[] getResults(OpenJPAStateManager sm,
                               JDBCStore store,
                               JDBCFetchConfiguration fetch,
                               int eagerMode,
                               Joins[] resJoins,
                               boolean lrs)
                        throws SQLException

  Description copied from interface: `LRSMapFieldStrategy`
  Return results containing all keys and values for this map. If only one result is needed, set both array indexes to the same result instance. Also fill in the key and value joins in the given array. The results will be loaded with the `LRSMapFieldStrategy.loadKey(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)` or `LRSMapFieldStrategy.deriveKey(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)` and `LRSMapFieldStrategy.loadValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)` methods.

  Throws:
    `SQLException`

### loadKey

    public Object loadKey(OpenJPAStateManager sm,
                          JDBCStore store,
                          JDBCFetchConfiguration fetch,
                          Result res,
                          Joins joins)
                   throws SQLException

  Description copied from interface: `LRSMapFieldStrategy`
  Load a key from the given result. This method is only used if the key is not derived from the value.

  Throws:
    `SQLException`

### loadValue

    public Object loadValue(OpenJPAStateManager sm,
                            JDBCStore store,
                            JDBCFetchConfiguration fetch,
                            Result res,
                            Joins joins)
                     throws SQLException

  Description copied from interface: `LRSMapFieldStrategy`
  Load a value from the given result.

  Throws:
    `SQLException`

### joinKeyRelation

    public Joins joinKeyRelation(Joins joins,
                                 ClassMapping key)

  Description copied from class: `MapTableFieldStrategy`
  Invokes `FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)` by default.

  Specified by:
    `joinKeyRelation` in interface `LRSMapFieldStrategy`
  Overrides:
    `joinKeyRelation` in class `MapTableFieldStrategy`

### joinValueRelation

    public Joins joinValueRelation(Joins joins,
                                   ClassMapping val)

  Description copied from class: `MapTableFieldStrategy`
  Invokes `FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)` by default.

  Specified by:
    `joinValueRelation` in interface `LRSMapFieldStrategy`
  Overrides:
    `joinValueRelation` in class `MapTableFieldStrategy`

### map

    public void map(boolean adapt)

  Description copied from interface: `Strategy`
  Map the owning mapping using this strategy.

  Specified by:
    `map` in interface `Strategy`
  Overrides:
    `map` in class `MapTableFieldStrategy`
  Parameters:
    `adapt` - if true, use the owning mapping's raw mapping info to set its ORM data; if false, ORM data will already be set

### initialize

    public void initialize()

  Description copied from interface: `Strategy`
  Perform caching and other initialization operations. This method is called after `Strategy.map(boolean)`, and after all related components have been mapped as well.

  Specified by:
    `initialize` in interface `Strategy`
  Overrides:
    `initialize` in class `AbstractStrategy`

### insert

    public void insert(OpenJPAStateManager sm,
                       JDBCStore store,
                       RowManager rm)
                throws SQLException

  Description copied from interface: `Strategy`
  Set values for the mapping into the proper rows. For class mappings, this method will be called only after the corresponding method has been called for all fields of this mapping.

  Specified by:
    `insert` in interface `Strategy`
  Overrides:
    `insert` in class `AbstractStrategy`
  Throws:
    `SQLException`

### update

    public void update(OpenJPAStateManager sm,
                       JDBCStore store,
                       RowManager rm)
                throws SQLException

  Description copied from interface: `Strategy`
  Set values for the mapping into the proper rows.

  Specified by:
    `update` in interface `Strategy`
  Overrides:
    `update` in class `AbstractStrategy`
  Throws:
    `SQLException`
  See Also:
    `Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)`

### joinRelation

    public Joins joinRelation(Joins joins,
                              boolean forceOuter,
                              boolean traverse)

  Description copied from interface: `FieldStrategy`
  Join this value's table to the table for the related first class object type, if any. Does nothing by default.

  Specified by:
    `joinRelation` in interface `FieldStrategy`
  Overrides:
    `joinRelation` in class `AbstractFieldStrategy`
    `traverse` - if true, throw proper exception if it is not possible for this mapping to traverse into the related type

### joinKeyRelation

    public Joins joinKeyRelation(Joins joins,
                                 boolean forceOuter,
                                 boolean traverse)

  Description copied from interface: `FieldStrategy`
  Join this value's table to the table for the related first class object key type, if any. Does nothing by default.

  Specified by:
    `joinKeyRelation` in interface `FieldStrategy`
  Overrides:
    `joinKeyRelation` in class `AbstractFieldStrategy`
    `traverse` - if true, throw proper exception if it is not possible for this mapping to traverse into the related type

### toDataStoreValue

    public Object toDataStoreValue(Object val,
                                   JDBCStore store)

  Description copied from interface: `FieldStrategy`
  Translate the given external field value to its datastore equivalent. If the mapping occupies multiple columns in the datastore, return an object array, else return a single object. Simply returns the given object by default.

  Specified by:
    `toDataStoreValue` in interface `FieldStrategy`
  Overrides:
    `toDataStoreValue` in class `AbstractFieldStrategy`

### toKeyDataStoreValue

    public Object toKeyDataStoreValue(Object val,
                                      JDBCStore store)

  Description copied from interface: `FieldStrategy`
  Translate the given key value to its datastore equivalent. If the mapping occupies multiple columns in the datastore, return an object array, else return a single object. Simply returns the given object by default.

  Specified by:
    `toKeyDataStoreValue` in interface `FieldStrategy`
  Overrides:
    `toKeyDataStoreValue` in class `AbstractFieldStrategy`

### delete

    public void delete(OpenJPAStateManager sm,
                       JDBCStore store,
                       RowManager rm)
                throws SQLException

  Description copied from interface: `Strategy`
  Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates. This allows foreign key analysis.

  Specified by:
    `delete` in interface `Strategy`
  Overrides:
    `delete` in class `MapTableFieldStrategy`
  Throws:
    `SQLException`
  See Also:
    `Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.