public abstract class MapTableFieldStrategy extends ContainerFieldStrategy implements LRSMapFieldStrategy
FieldStrategy.toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)
,
FieldStrategy.toKeyDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)
,
FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)
, and
FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)
if necessary.field
Constructor and Description |
---|
MapTableFieldStrategy() |
Modifier and Type | Method and Description |
---|---|
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.
|
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.
|
protected ClassMapping[] |
getIndependentElementMappings(boolean traverse)
Return all independent mappings to which this strategy must join in
order to access collection elements, or empty array if none.
|
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() |
ForeignKey |
getJoinForeignKey(ClassMapping cls)
Return the foreign key used to join to the owning field for the given
mapping from either
LRSMapFieldStrategy.getIndependentKeyMappings(boolean) or
LRSMapFieldStrategy.getIndependentValueMappings(boolean) (or null). |
protected void |
handleMappedByForeignKey(boolean adapt) |
protected boolean |
isTypeUnjoinedSubclass(ValueMapping mapped) |
Joins |
join(Joins joins,
boolean forceOuter)
Join this value to the class table.
|
Joins |
joinKey(Joins joins,
boolean forceOuter)
Join the key value to the class table.
|
Joins |
joinKeyRelation(Joins joins,
ClassMapping key)
|
Joins |
joinValueRelation(Joins joins,
ClassMapping val)
Invokes
FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean) by default. |
void |
load(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch)
Load secondary data using a connection from the store manager.
|
Object |
loadKeyProjection(JDBCStore store,
JDBCFetchConfiguration fetch,
Result res,
Joins joins)
Load this field's key value using the given result.
|
Object |
loadProjection(JDBCStore store,
JDBCFetchConfiguration fetch,
Result res,
Joins joins)
Load this field value using the given result.
|
void |
map(boolean adapt)
Map the owning mapping using this strategy.
|
protected boolean |
populateKey(Row row,
OpenJPAStateManager valsm,
Object obj,
StoreContext ctx,
RowManager rm,
JDBCStore store) |
int |
supportsSelect(Select sel,
int type,
OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch)
Return whether this mapping can perform the given select type.
|
appendIndex, appendIsEmpty, appendIsNotEmpty, appendIsNotNull, appendIsNull, appendJoinCount, appendSize, appendUnaliasedJoin
appendType, assertNotMappedBy, isEagerSelectToMany, isVersionable, joinKeyRelation, joinRelation, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, toDataStoreValue, toKeyDataStoreValue, where
customDelete, customInsert, customUpdate, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, update
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getKeyColumns, getResults, getValueColumns, loadKey, loadValue, selectKey, selectValue
appendIndex, appendIsEmpty, appendIsNotEmpty, appendIsNotNull, appendIsNull, appendSize, appendType, isEagerSelectToMany, isVersionable, joinKeyRelation, joinRelation, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, toDataStoreValue, toKeyDataStoreValue, where
customDelete, customInsert, customUpdate, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, update
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)
LRSMapFieldStrategy
LRSMapFieldStrategy.getIndependentKeyMappings(boolean)
or
LRSMapFieldStrategy.getIndependentValueMappings(boolean)
(or null).getJoinForeignKey
in interface LRSMapFieldStrategy
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 Joins joinKeyRelation(Joins joins, ClassMapping key)
FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)
by default.joinKeyRelation
in interface LRSMapFieldStrategy
public Joins joinValueRelation(Joins joins, ClassMapping val)
FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)
by default.joinValueRelation
in interface LRSMapFieldStrategy
public void map(boolean adapt)
Strategy
map
in interface Strategy
map
in class AbstractStrategy
adapt
- if true, use the owning mapping's raw mapping info
to set its ORM data; if false, ORM data will already be setpublic void delete(OpenJPAStateManager sm, JDBCStore store, RowManager rm) throws SQLException
Strategy
delete
in interface Strategy
delete
in class AbstractStrategy
SQLException
Strategy.insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)
public int supportsSelect(Select sel, int type, OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch)
FieldStrategy
supportsSelect
in interface FieldStrategy
supportsSelect
in class AbstractFieldStrategy
Select
public void load(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch) throws SQLException
FieldStrategy
load
in interface FieldStrategy
load
in class AbstractFieldStrategy
SQLException
public Object loadKeyProjection(JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins) throws SQLException
FieldStrategy
ValueMapping.getColumns()
.loadKeyProjection
in interface FieldStrategy
loadKeyProjection
in class AbstractFieldStrategy
SQLException
public Object loadProjection(JDBCStore store, JDBCFetchConfiguration fetch, Result res, Joins joins) throws SQLException
FieldStrategy
ValueMapping.getColumns()
.loadProjection
in interface FieldStrategy
loadProjection
in class AbstractFieldStrategy
SQLException
public Joins join(Joins joins, boolean forceOuter)
FieldStrategy
join
in interface FieldStrategy
join
in class AbstractFieldStrategy
public Joins joinKey(Joins joins, boolean forceOuter)
FieldStrategy
joinKey
in interface FieldStrategy
joinKey
in class AbstractFieldStrategy
public ForeignKey getJoinForeignKey()
getJoinForeignKey
in class ContainerFieldStrategy
protected ClassMapping[] getIndependentElementMappings(boolean traverse)
ContainerFieldStrategy
getIndependentElementMappings
in class ContainerFieldStrategy
traverse
- whether we're traversing through to the related typeValueMapping.getIndependentTypeMappings()
,
ClassMapping.EMPTY_MAPPINGS
protected void handleMappedByForeignKey(boolean adapt)
protected boolean isTypeUnjoinedSubclass(ValueMapping mapped)
protected boolean populateKey(Row row, OpenJPAStateManager valsm, Object obj, StoreContext ctx, RowManager rm, JDBCStore store) throws SQLException
SQLException
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.