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 RelationMapTableFieldStrategy

    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.StoreCollectionFieldStrategy
                      org.apache.openjpa.jdbc.meta.strats.RelationToManyTableFieldStrategy
                          org.apache.openjpa.jdbc.meta.strats.RelationMapTableFieldStrategy

All Implemented Interfaces:
  Serializable, FieldStrategy, Strategy, LRSMapFieldStrategy

    public class RelationMapTableFieldStrategy

extends RelationToManyTableFieldStrategy
implements LRSMapFieldStrategy

Uses an association table to hold map values. Derives map keys from a field in each value.

Author:
  Abe White
See Also:
  Serialized Form

Field Summary

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

Constructor Summary
`RelationMapTableFieldStrategy()`

Method Summary
`protected void` | `add(JDBCStore store, Object coll, Object obj)` Add an item to the data structure representing a field value.
`Object` | `deriveKey(JDBCStore store, Object value)` Some mapping derive keys from map values.
`Object` | `deriveValue(JDBCStore store, Object key)` Some mapping derive values from map keys.
`FieldMapping` | `getFieldMapping()` The owning field mapping.
`ClassMapping[]` | `getIndependentKeyMappings(boolean traverse)` Return all independent mappings to which this strategy must join in order to access map keys, or empty array if none.
`ClassMapping[]` | `getIndependentValueMappings(boolean traverse)` Return all independent mappings to which this strategy must join in order to access map values, or empty array if none.
`ForeignKey` | `getJoinForeignKey(ClassMapping cls)` Return the foreign key used to join to the owning field for the given element mapping from `ContainerFieldStrategy.getIndependentElementMappings(boolean)` (or null).
`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[] joins, 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).
`Joins` | `joinKey(Joins joins, boolean forceOuter)` Join the key value to the class table.
`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)` Join this value's table to the table for the given key mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` (or null).
`Joins` | `joinValueRelation(Joins joins, ClassMapping val)` Join this value's table to the table for the given value mapping from `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).
`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.
`protected Proxy` | `newLRSProxy()` Return a large result set proxy for this field.
`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.
`protected Collection` | `toCollection(Object val)` Convert the field value to a collection.

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.RelationToManyTableFieldStrategy
`delete, getIndependentElementMappings, insert, join, join, joinElementRelation, joinRelation, loadElement, selectElement, toDataStoreValue, update`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy
`getJoinForeignKey, getObjectIdForJoin, isEagerSelectToMany, load, loadEagerJoin, loadEagerParallel, loadProjection, requiresOrderBy, selectAll, selectEagerJoin, selectEagerParallel, 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, isVersionable, load, loadKeyProjection, select, setFieldMapping, toKeyDataStoreValue, where`

Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
`customDelete, customInsert, customUpdate, getAlias, initialize, 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, join, joinRelation, load, load, loadEagerJoin, loadEagerParallel, loadKeyProjection, loadProjection, select, selectEagerJoin, selectEagerParallel, setFieldMapping, supportsSelect, toDataStoreValue, toKeyDataStoreValue, where`

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

Constructor Detail

### RelationMapTableFieldStrategy

    public RelationMapTableFieldStrategy()

Method Detail

### getFieldMapping

    public FieldMapping getFieldMapping()

  Description copied from interface: `LRSMapFieldStrategy`
  The owning field mapping.

  Specified by:
    `getFieldMapping` in interface `LRSMapFieldStrategy`

### getIndependentKeyMappings

    public ClassMapping[] getIndependentKeyMappings(boolean traverse)

  Description copied from interface: `LRSMapFieldStrategy`
  Return all independent mappings to which this strategy must join in order to access map keys, or empty array if none.

  Specified by:
    `getIndependentKeyMappings` in interface `LRSMapFieldStrategy`
  See Also:
    `ValueMapping.getIndependentTypeMappings()`, `ClassMapping.EMPTY_MAPPINGS`

### getIndependentValueMappings

    public ClassMapping[] getIndependentValueMappings(boolean traverse)

  Description copied from interface: `LRSMapFieldStrategy`
  Return all independent mappings to which this strategy must join in order to access map values, or empty array if none.

  Specified by:
    `getIndependentValueMappings` in interface `LRSMapFieldStrategy`
  See Also:
    `ValueMapping.getIndependentTypeMappings()`, `ClassMapping.EMPTY_MAPPINGS`

### getJoinForeignKey

    public ForeignKey getJoinForeignKey(ClassMapping cls)

  Description copied from class: `StoreCollectionFieldStrategy`
  Return the foreign key used to join to the owning field for the given element mapping from `ContainerFieldStrategy.getIndependentElementMappings(boolean)` (or null).

  Specified by:
    `getJoinForeignKey` in interface `LRSMapFieldStrategy`
  Overrides:
    `getJoinForeignKey` in class `RelationToManyTableFieldStrategy`

### 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).

  Specified by:
    `getKeyColumns` in interface `LRSMapFieldStrategy`

### 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).

  Specified by:
    `getValueColumns` in interface `LRSMapFieldStrategy`

### 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.

  Specified by:
    `selectKey` in interface `LRSMapFieldStrategy`

### 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.

  Specified by:
    `loadKey` in interface `LRSMapFieldStrategy`
  Throws:
    `SQLException`

### deriveKey

    public Object deriveKey(JDBCStore store,
                            Object value)

  Description copied from interface: `LRSMapFieldStrategy`
  Some mapping derive keys from map values. Other mappings may return null.

  Specified by:
    `deriveKey` in interface `LRSMapFieldStrategy`

### deriveValue

    public Object deriveValue(JDBCStore store,
                              Object key)

  Description copied from interface: `LRSMapFieldStrategy`
  Some mapping derive values from map keys. Other mappings may return null.

  Specified by:
    `deriveValue` in interface `LRSMapFieldStrategy`

### 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)`.

  Specified by:
    `selectValue` in interface `LRSMapFieldStrategy`

### 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.

  Specified by:
    `loadValue` in interface `LRSMapFieldStrategy`
  Throws:
    `SQLException`

### getResults

    public Result[] getResults(OpenJPAStateManager sm,
                               JDBCStore store,
                               JDBCFetchConfiguration fetch,
                               int eagerMode,
                               Joins[] joins,
                               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.

  Specified by:
    `getResults` in interface `LRSMapFieldStrategy`
  Throws:
    `SQLException`

### joinKeyRelation

    public Joins joinKeyRelation(Joins joins,
                                 ClassMapping key)

  Description copied from interface: `LRSMapFieldStrategy`
  Join this value's table to the table for the given key mapping from `LRSMapFieldStrategy.getIndependentKeyMappings(boolean)` (or null).

  Specified by:
    `joinKeyRelation` in interface `LRSMapFieldStrategy`

### 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

### joinValueRelation

    public Joins joinValueRelation(Joins joins,
                                   ClassMapping val)

  Description copied from interface: `LRSMapFieldStrategy`
  Join this value's table to the table for the given value mapping from `LRSMapFieldStrategy.getIndependentValueMappings(boolean)` (or null).

  Specified by:
    `joinValueRelation` in interface `LRSMapFieldStrategy`

### newLRSProxy

    protected Proxy newLRSProxy()

  Description copied from class: `StoreCollectionFieldStrategy`
  Return a large result set proxy for this field.

  Specified by:
    `newLRSProxy` in class `StoreCollectionFieldStrategy`

### add

    protected void add(JDBCStore store,
                       Object coll,
                       Object obj)

  Description copied from class: `StoreCollectionFieldStrategy`
  Add an item to the data structure representing a field value. By default, assumes the structure is a collection.

  Overrides:
    `add` in class `StoreCollectionFieldStrategy`

### toCollection

    protected Collection toCollection(Object val)

  Description copied from class: `StoreCollectionFieldStrategy`
  Convert the field value to a collection. Handles collections and arrays by default.

  Overrides:
    `toCollection` in class `StoreCollectionFieldStrategy`

### 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 `RelationToManyTableFieldStrategy`
  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

### joinKey

    public Joins joinKey(Joins joins,
                         boolean forceOuter)

  Description copied from interface: `FieldStrategy`
  Join the key value to the class table. Does nothing by default.

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

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.