|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.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
public abstract class MapTableFieldStrategy
Base class for map mappings. Handles managing the secondary table
used to hold map keys and values and loading. Subclasses must implement
abstract methods and insert/update behavior as well as overriding
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 Summary |
|---|
| Fields inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy |
|---|
field |
| Constructor Summary | |
|---|---|
MapTableFieldStrategy()
|
|
| 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. |
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)
Invokes FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean) by default. |
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. |
| 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, joinKeyRelation, joinRelation, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, toDataStoreValue, toKeyDataStoreValue, where |
| Methods inherited from class org.apache.openjpa.jdbc.meta.strats.AbstractStrategy |
|---|
customDelete, customInsert, customUpdate, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, update |
| 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.strats.LRSMapFieldStrategy |
|---|
getKeyColumns, getResults, getValueColumns, loadKey, loadValue, selectKey, selectValue |
| Methods inherited from interface org.apache.openjpa.jdbc.meta.FieldStrategy |
|---|
appendIndex, appendIsEmpty, appendIsNotEmpty, appendIsNotNull, appendIsNull, appendSize, appendType, isEagerSelectToMany, isVersionable, joinKeyRelation, joinRelation, load, loadEagerJoin, loadEagerParallel, select, selectEagerJoin, selectEagerParallel, setFieldMapping, toDataStoreValue, toKeyDataStoreValue, where |
| Methods inherited from interface org.apache.openjpa.jdbc.meta.Strategy |
|---|
customDelete, customInsert, customUpdate, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, update |
| Constructor Detail |
|---|
public MapTableFieldStrategy()
| Method Detail |
|---|
public FieldMapping getFieldMapping()
LRSMapFieldStrategy
getFieldMapping in interface LRSMapFieldStrategypublic ClassMapping[] getIndependentKeyMappings(boolean traverse)
LRSMapFieldStrategy
getIndependentKeyMappings in interface LRSMapFieldStrategyValueMapping.getIndependentTypeMappings(),
ClassMapping.EMPTY_MAPPINGSpublic ClassMapping[] getIndependentValueMappings(boolean traverse)
LRSMapFieldStrategy
getIndependentValueMappings in interface LRSMapFieldStrategyValueMapping.getIndependentTypeMappings(),
ClassMapping.EMPTY_MAPPINGSpublic ForeignKey getJoinForeignKey(ClassMapping cls)
LRSMapFieldStrategyLRSMapFieldStrategy.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 LRSMapFieldStrategypublic void map(boolean adapt)
Strategy
map in interface Strategymap in class AbstractStrategyadapt - if true, use the owning mapping's raw mapping info
to set its ORM data; if false, ORM data will already be set
public void delete(OpenJPAStateManager sm,
JDBCStore store,
RowManager rm)
throws SQLException
Strategy
delete in interface Strategydelete in class AbstractStrategySQLExceptionStrategy.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 FieldStrategysupportsSelect in class AbstractFieldStrategySelect
public void load(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch)
throws SQLException
FieldStrategy
load in interface FieldStrategyload in class AbstractFieldStrategySQLException
public Object loadKeyProjection(JDBCStore store,
JDBCFetchConfiguration fetch,
Result res,
Joins joins)
throws SQLException
FieldStrategyValueMapping.getColumns().
loadKeyProjection in interface FieldStrategyloadKeyProjection in class AbstractFieldStrategySQLException
public Object loadProjection(JDBCStore store,
JDBCFetchConfiguration fetch,
Result res,
Joins joins)
throws SQLException
FieldStrategyValueMapping.getColumns().
loadProjection in interface FieldStrategyloadProjection in class AbstractFieldStrategySQLException
public Joins join(Joins joins,
boolean forceOuter)
FieldStrategy
join in interface FieldStrategyjoin in class AbstractFieldStrategy
public Joins joinKey(Joins joins,
boolean forceOuter)
FieldStrategy
joinKey in interface FieldStrategyjoinKey in class AbstractFieldStrategypublic ForeignKey getJoinForeignKey()
getJoinForeignKey in class ContainerFieldStrategyprotected ClassMapping[] getIndependentElementMappings(boolean traverse)
ContainerFieldStrategy
getIndependentElementMappings in class ContainerFieldStrategytraverse - whether we're traversing through to the related typeValueMapping.getIndependentTypeMappings(),
ClassMapping.EMPTY_MAPPINGSprotected 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
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||