Class AbstractClassStrategy

    • Field Detail

    • Constructor Detail

      • AbstractClassStrategy

        public AbstractClassStrategy()
    • Method Detail

      • isPrimaryKeyObjectId

        public boolean isPrimaryKeyObjectId​(boolean hasAll)
        Description copied from interface: ClassStrategy
        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.
        Specified by:
        isPrimaryKeyObjectId in interface ClassStrategy
        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

        public Joins joinSuperclass​(Joins joins,
                                    boolean toThis)
        Description copied from interface: ClassStrategy
        Join the mapping and its superclass.
        Specified by:
        joinSuperclass in interface ClassStrategy
        toThis - if false, inner join to the superclass table; if true, outer join from the superclass table to this table
      • customLoad

        public ResultObjectProvider customLoad​(JDBCStore store,
                                               boolean subclasses,
                                               JDBCFetchConfiguration fetch,
                                               long startIdx,
                                               long endIdx)
                                        throws java.sql.SQLException
        Description copied from interface: ClassStrategy
        Implement this method to customize obtaining a result containing all instances of this class. Return null for standard loading.
        Specified by:
        customLoad in interface ClassStrategy
        Throws:
        java.sql.SQLException
      • customLoad

        public boolean customLoad​(OpenJPAStateManager sm,
                                  JDBCStore store,
                                  PCState state,
                                  JDBCFetchConfiguration fetch)
                           throws java.sql.SQLException,
                                  java.lang.ClassNotFoundException
        Description copied from interface: ClassStrategy
        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.
        Specified by:
        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)
        Throws:
        java.sql.SQLException
        java.lang.ClassNotFoundException