|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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
public class RelationMapTableFieldStrategy
Uses an association table to hold map values. Derives map keys from a field in each value.
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 |
---|
public RelationMapTableFieldStrategy()
Method Detail |
---|
public FieldMapping getFieldMapping()
LRSMapFieldStrategy
getFieldMapping
in interface LRSMapFieldStrategy
public ClassMapping[] getIndependentKeyMappings(boolean traverse)
LRSMapFieldStrategy
getIndependentKeyMappings
in interface LRSMapFieldStrategy
ValueMapping.getIndependentTypeMappings()
,
ClassMapping.EMPTY_MAPPINGS
public ClassMapping[] getIndependentValueMappings(boolean traverse)
LRSMapFieldStrategy
getIndependentValueMappings
in interface LRSMapFieldStrategy
ValueMapping.getIndependentTypeMappings()
,
ClassMapping.EMPTY_MAPPINGS
public ForeignKey getJoinForeignKey(ClassMapping cls)
StoreCollectionFieldStrategy
ContainerFieldStrategy.getIndependentElementMappings(boolean)
(or null).
getJoinForeignKey
in interface LRSMapFieldStrategy
getJoinForeignKey
in class RelationToManyTableFieldStrategy
public Column[] getKeyColumns(ClassMapping cls)
LRSMapFieldStrategy
LRSMapFieldStrategy.getIndependentKeyMappings(boolean)
or
LRSMapFieldStrategy.getIndependentValueMappings(boolean)
(or null).
getKeyColumns
in interface LRSMapFieldStrategy
public Column[] getValueColumns(ClassMapping cls)
LRSMapFieldStrategy
LRSMapFieldStrategy.getIndependentKeyMappings(boolean)
or
LRSMapFieldStrategy.getIndependentValueMappings(boolean)
(or null).
getValueColumns
in interface LRSMapFieldStrategy
public void selectKey(Select sel, ClassMapping key, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)
LRSMapFieldStrategy
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.
selectKey
in interface LRSMapFieldStrategy
public Object loadKey(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins) throws SQLException
LRSMapFieldStrategy
loadKey
in interface LRSMapFieldStrategy
SQLException
public Object deriveKey(JDBCStore store, Object value)
LRSMapFieldStrategy
deriveKey
in interface LRSMapFieldStrategy
public Object deriveValue(JDBCStore store, Object key)
LRSMapFieldStrategy
deriveValue
in interface LRSMapFieldStrategy
public void selectValue(Select sel, ClassMapping val, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)
LRSMapFieldStrategy
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)
.
selectValue
in interface LRSMapFieldStrategy
public Object loadValue(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins) throws SQLException
LRSMapFieldStrategy
loadValue
in interface LRSMapFieldStrategy
SQLException
public Result[] getResults(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, int eagerMode, Joins[] joins, boolean lrs) throws SQLException
LRSMapFieldStrategy
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.
getResults
in interface LRSMapFieldStrategy
SQLException
public Joins joinKeyRelation(Joins joins, ClassMapping key)
LRSMapFieldStrategy
LRSMapFieldStrategy.getIndependentKeyMappings(boolean)
(or null).
joinKeyRelation
in interface LRSMapFieldStrategy
public Joins joinKeyRelation(Joins joins, boolean forceOuter, boolean traverse)
FieldStrategy
joinKeyRelation
in interface FieldStrategy
joinKeyRelation
in class AbstractFieldStrategy
traverse
- if true, throw proper exception if it is not
possible for this mapping to traverse into the related typepublic Joins joinValueRelation(Joins joins, ClassMapping val)
LRSMapFieldStrategy
LRSMapFieldStrategy.getIndependentValueMappings(boolean)
(or null).
joinValueRelation
in interface LRSMapFieldStrategy
protected Proxy newLRSProxy()
StoreCollectionFieldStrategy
newLRSProxy
in class StoreCollectionFieldStrategy
protected void add(JDBCStore store, Object coll, Object obj)
StoreCollectionFieldStrategy
add
in class StoreCollectionFieldStrategy
protected Collection toCollection(Object val)
StoreCollectionFieldStrategy
toCollection
in class StoreCollectionFieldStrategy
public void map(boolean adapt)
Strategy
map
in interface Strategy
map
in class RelationToManyTableFieldStrategy
adapt
- if true, use the owning mapping's raw mapping info
to set its ORM data; if false, ORM data will already be setpublic Joins joinKey(Joins joins, boolean forceOuter)
FieldStrategy
joinKey
in interface FieldStrategy
joinKey
in class AbstractFieldStrategy
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |