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
Interface ClassStrategy

All Superinterfaces:
  Serializable, Strategy

All Known Implementing Classes:
  AbstractClassStrategy, ClassMapping, EmbeddedClassStrategy, FlatClassStrategy, FullClassStrategy, NoneClassStrategy, ObjectIdClassStrategy, VerticalClassStrategy

    public interface ClassStrategy

extends Strategy

Mapping from a class to a relational schema.

Since:
  0.4.0
Author:
  Abe White

Method Summary
`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.

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

Method Detail

### setClassMapping

    void setClassMapping(ClassMapping owner)

  Set the class mapping using this strategy. This will be called before use.

### isPrimaryKeyObjectId

    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. Base classes always return true. Classes that join to the base class table, though, may not always join using the same columns the base class uses for oid values, or may not use all the columns. When performing a select, we will join down to the most-derived class that is identified by oid values. We cannot use non-primary key field values for joining during selects, because the field values to join on might be the ones we're trying to select! Similarly, we can only reconstruct oid values for selected objects using classes whose primary keys store oid values.

  Parameters:
    `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 columns

### joinSuperclass

    Joins joinSuperclass(Joins joins,
                         boolean toThis)

  Join the mapping and its superclass.

  Parameters:
    `toThis` - if false, inner join to the superclass table; if true, outer join from the superclass table to this table

### supportsEagerSelect

    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. The given state manager may be null if selecting multiple instances.

### customLoad

    ResultObjectProvider customLoad(JDBCStore store,
                                    boolean subclasses,
                                    JDBCFetchConfiguration fetch,
                                    long startIdx,
                                    long endIdx)
                                    throws SQLException

  Implement this method to customize obtaining a result containing all instances of this class. Return null for standard loading.

  Throws:
    `SQLException`

### customLoad

    boolean customLoad(OpenJPAStateManager sm,
                       JDBCStore store,
                       PCState state,
                       JDBCFetchConfiguration fetch)
                       throws SQLException,
                              ClassNotFoundException

  Implement this method to load the state of a given object, without a previous `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.

  Parameters:
    `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)`
  Throws:
    `SQLException`
    `ClassNotFoundException`

### customLoad

    boolean customLoad(OpenJPAStateManager sm,
                       JDBCStore store,
                       JDBCFetchConfiguration fetch,
                       Result result)
                       throws SQLException

  Implement this method to customize loading from a `Result` into an instance. Return true if this mapping handles the load; false if normal loading should proceed after calling this method.

  Throws:
    `SQLException`

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.