public abstract class AbstractClassStrategy extends AbstractStrategy implements ClassStrategy
Modifier and Type | Field and Description |
---|---|
protected ClassMapping |
cls
The owning class mapping.
|
Constructor and Description |
---|
AbstractClassStrategy() |
Modifier and Type | Method and Description |
---|---|
ResultObjectProvider |
customLoad(JDBCStore store,
boolean subclasses,
JDBCFetchConfiguration fetch,
long startIdx,
long endIdx)
Implement this method to customize obtaining a result containing all
instances of this class.
|
boolean |
customLoad(OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch,
Result result)
Implement this method to customize loading from a
Result
into an instance. |
boolean |
customLoad(OpenJPAStateManager sm,
JDBCStore store,
PCState state,
JDBCFetchConfiguration fetch)
Implement this method to load the state of a given object, without
a previous
Result . |
boolean |
isPrimaryKeyObjectId(boolean hasAll)
Return true if the this class' primary key columns correspond to the
base class' primary key columns used to construct oid values.
|
Joins |
joinSuperclass(Joins joins,
boolean toThis)
Join the mapping and its superclass.
|
void |
setClassMapping(ClassMapping owner)
Set the class mapping using this strategy.
|
boolean |
supportsEagerSelect(Select sel,
OpenJPAStateManager sm,
JDBCStore store,
ClassMapping base,
JDBCFetchConfiguration fetch)
Return true if this strategy can perform the given select from
the given
base mapping. |
customDelete, customInsert, customUpdate, delete, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, map, update
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
customDelete, customInsert, customUpdate, delete, getAlias, initialize, insert, isCustomDelete, isCustomInsert, isCustomUpdate, map, update
protected ClassMapping cls
public void setClassMapping(ClassMapping owner)
ClassStrategy
setClassMapping
in interface ClassStrategy
public boolean isPrimaryKeyObjectId(boolean hasAll)
ClassStrategy
isPrimaryKeyObjectId
in interface ClassStrategy
hasAll
- if true, there must be a primary key column for every
base class primary key column; if false the primary key
must only match a subset of the base class primary key columnspublic Joins joinSuperclass(Joins joins, boolean toThis)
ClassStrategy
joinSuperclass
in interface ClassStrategy
toThis
- if false, inner join to the superclass table; if
true, outer join from the superclass table to this tablepublic boolean supportsEagerSelect(Select sel, OpenJPAStateManager sm, JDBCStore store, ClassMapping base, JDBCFetchConfiguration fetch)
ClassStrategy
base
mapping.
The given state manager may be null if selecting multiple instances.supportsEagerSelect
in interface ClassStrategy
public ResultObjectProvider customLoad(JDBCStore store, boolean subclasses, JDBCFetchConfiguration fetch, long startIdx, long endIdx) throws SQLException
ClassStrategy
customLoad
in interface ClassStrategy
SQLException
public boolean customLoad(OpenJPAStateManager sm, JDBCStore store, PCState state, JDBCFetchConfiguration fetch) throws SQLException, ClassNotFoundException
ClassStrategy
Result
. Return true if this method handles the
load. If the object does not exist in the data store, simply take no
action on it (but still return true). Return false to use default
loading.customLoad
in interface ClassStrategy
state
- if non-null, then you must initialize the state
and persistent object of the given state manager
(after determining the actual class of the object
from the database, if there are possible persistent
subclasses); initialization looks like this:
sm.initialize (pcClass, state)
SQLException
ClassNotFoundException
public boolean customLoad(OpenJPAStateManager sm, JDBCStore store, JDBCFetchConfiguration fetch, Result result) throws SQLException
ClassStrategy
Result
into an instance. Return true if this mapping handles the
load; false if normal loading should proceed after calling this method.customLoad
in interface ClassStrategy
SQLException
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.