Package org.apache.openjpa.jdbc.sql
Class MergedResult
java.lang.Object
org.apache.openjpa.jdbc.sql.MergedResult
Result that merges multiple result delegates. Support exists for
maintaining ordering of the internally-held results, provided that each
of the individual results is itself ordered.
- Author:
- Abe White
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Comparator for ordering result rows. -
Constructor Summary
ConstructorDescriptionMergedResult
(Result[] res) Constructor; supply delegates.MergedResult
(Result[] res, MergedResult.ResultComparator comp) Constructor; supply delegates and comparator for ordering results. -
Method Summary
Modifier and TypeMethodDescriptionboolean
absolute
(int row) Move to the given 0-based row in the result, or return false if the row does not exist.void
close()
Free the resources used by this result; do not close the SQL connection.boolean
Return true if the given id or column is available in the result.boolean
Return true if the given column is available in the result.boolean
containsAll
(Object[] objs) Return true if all the given ids or columns are available in the result.boolean
containsAll
(Column[] cols, Joins joins) Return true if all the given columns are available in the result.void
Ends a data request.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.getAsciiStream
(Object obj) Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.getAsciiStream
(Column col, Joins joins) Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.If this is the result of a UNION used to select a hierarchy of mappings, the base mapping represented by the current row.getBigDecimal
(Object obj) Return the value stored in the given column or id.getBigDecimal
(Column col, Joins joins) Return the value stored in the given column.getBigInteger
(Object obj) Return the value stored in the given column or id.getBigInteger
(Column col, Joins joins) Return the value stored in the given column.getBinaryStream
(Object obj) Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.getBinaryStream
(Column col, Joins joins) Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.boolean
getBoolean
(Object obj) Return the value stored in the given column or id.boolean
getBoolean
(Column col, Joins joins) Return the value stored in the given column.byte
Return the value stored in the given column or id.byte
Return the value stored in the given column.byte[]
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.byte[]
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.getCalendar
(Object obj) Return the value stored in the given column or id.getCalendar
(Column col, Joins joins) Return the value stored in the given column.char
Return the value stored in the given column or id.char
Return the value stored in the given column.getCharacterStream
(Object obj) Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.getCharacterStream
(Column col, Joins joins) Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column or id.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column.double
Return the value stored in the given column or id.double
Return the value stored in the given column.getEager
(FieldMapping key) The eager result for the given key, or null if none.float
Return the value stored in the given column or id.float
Return the value stored in the given column.int
Return the value stored in the given column or id.int
Return the value stored in the given column.getLOBStream
(JDBCStore store, Object obj) getLocalDate
(Object obj) Return the value stored in the given column or id.getLocalDateTime
(Object obj) Return the value stored in the given column or id.Return the value stored in the given column or id.Return the value stored in the given column.getLocalTime
(Object obj) Return the value stored in the given column or id.long
Return the value stored in the given column or id.long
Return the value stored in the given column.If this is the result used to select a toMany relationship, the mappedByFieldMapping is field mapping representing the inverse relationship.If this is the result used to select a toMany relationship, the mappedByValue is value of the owner of the toMany relationship.Return the value stored in the given column or id.Return the value stored in the given column.Return the value stored in the given column or id.Return the value stored in the given column.getOffsetDateTime
(Object obj) Return the value stored in the given column or id.getOffsetTime
(Object obj) Return the value stored in the given column or id.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.short
Return the value stored in the given column or id.short
Return the value stored in the given column.getSQLObject
(Object obj, Map map) Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.getSQLObject
(Column col, Map map, Joins joins) Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column or id.Return the value stored in the given column.Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.getTimestamp
(Object obj, Calendar cal) Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.getTimestamp
(Column col, Calendar cal, Joins joins) Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.int
indexOf()
The index of the select within the UNION that the current row corresponds to, or 0.boolean
If true, then any results loaded from this Result will be locked in the database.load
(ClassMapping mapping, JDBCStore store, JDBCFetchConfiguration fetch) Load a pc object using the given store manager.load
(ClassMapping mapping, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins) Load a pc object using the given store manager.newJoins()
Return a new joins instance to use for traversing to related data.boolean
next()
Advance to the next row, or return false if there are no more rows in the result.void
pushBack()
Push back the last result.void
putEager
(FieldMapping key, Object res) The eager result for the given key, or null if none.void
setBaseMapping
(ClassMapping mapping) If this is the result of a UNION used to select a hierarchy of mappings, the base mapping represented by the current row.void
setLocking
(boolean locking) Set to true if row locking has been issued for the row.void
setMappedByFieldMapping
(FieldMapping fieldMapping) If this is the result used to select a toMany relationship, the mappedByFieldMapping is field mapping representing the inverse relationship.void
setMappedByValue
(Object mappedByValue) If this is the result used to select a toMany relationship, the mappedByValue is value of the owner of the toMany relationship.int
size()
Return the number of rows in this result.void
startDataRequest
(Object mapping) Informs this receiver about the application element for which a subsequent data request will be made.boolean
Return true if the result supports random access.boolean
wasNull()
Return true if the last value fetched was null.
-
Constructor Details
-
MergedResult
Constructor; supply delegates. -
MergedResult
Constructor; supply delegates and comparator for ordering results.
-
-
Method Details
-
getEager
Description copied from interface:Result
The eager result for the given key, or null if none. -
putEager
Description copied from interface:Result
The eager result for the given key, or null if none. -
newJoins
Description copied from interface:Result
Return a new joins instance to use for traversing to related data. -
close
public void close()Description copied from interface:Result
Free the resources used by this result; do not close the SQL connection. -
setLocking
public void setLocking(boolean locking) Description copied from interface:Result
Set to true if row locking has been issued for the row.- Specified by:
setLocking
in interfaceResult
-
isLocking
public boolean isLocking()Description copied from interface:Result
If true, then any results loaded from this Result will be locked in the database. -
supportsRandomAccess
Description copied from interface:Result
Return true if the result supports random access.- Specified by:
supportsRandomAccess
in interfaceResult
- Throws:
SQLException
-
absolute
Description copied from interface:Result
Move to the given 0-based row in the result, or return false if the row does not exist. This method will only be called if the result supports random access.- Specified by:
absolute
in interfaceResult
- Throws:
SQLException
-
next
Description copied from interface:Result
Advance to the next row, or return false if there are no more rows in the result.- Specified by:
next
in interfaceResult
- Throws:
SQLException
-
pushBack
Description copied from interface:Result
Push back the last result. In other words, just ignore the next call toResult.next()
. After the first time this method is called, additional calls before a call toResult.next()
orResult.absolute(int)
should have no further affect.- Specified by:
pushBack
in interfaceResult
- Throws:
SQLException
-
size
Description copied from interface:Result
Return the number of rows in this result.- Specified by:
size
in interfaceResult
- Throws:
SQLException
-
contains
Description copied from interface:Result
Return true if the given id or column is available in the result.- Specified by:
contains
in interfaceResult
- Throws:
SQLException
-
containsAll
Description copied from interface:Result
Return true if all the given ids or columns are available in the result.- Specified by:
containsAll
in interfaceResult
- Throws:
SQLException
-
contains
Description copied from interface:Result
Return true if the given column is available in the result.- Specified by:
contains
in interfaceResult
- Throws:
SQLException
-
containsAll
Description copied from interface:Result
Return true if all the given columns are available in the result.- Specified by:
containsAll
in interfaceResult
- Throws:
SQLException
-
getBaseMapping
Description copied from interface:Result
If this is the result of a UNION used to select a hierarchy of mappings, the base mapping represented by the current row. This information is not available after getting any eager results from the row.- Specified by:
getBaseMapping
in interfaceResult
-
setBaseMapping
Description copied from interface:Result
If this is the result of a UNION used to select a hierarchy of mappings, the base mapping represented by the current row. This information is not available after getting any eager results from the row.- Specified by:
setBaseMapping
in interfaceResult
-
getMappedByFieldMapping
Description copied from interface:Result
If this is the result used to select a toMany relationship, the mappedByFieldMapping is field mapping representing the inverse relationship. This is to avoid unneeded extra sql to retrieve the eager inverse field.- Specified by:
getMappedByFieldMapping
in interfaceResult
-
setMappedByFieldMapping
Description copied from interface:Result
If this is the result used to select a toMany relationship, the mappedByFieldMapping is field mapping representing the inverse relationship. This is to avoid unneeded extra sql to retrieve the eager inverse field.- Specified by:
setMappedByFieldMapping
in interfaceResult
-
getMappedByValue
Description copied from interface:Result
If this is the result used to select a toMany relationship, the mappedByValue is value of the owner of the toMany relationship. This is to avoid unneeded extra sql to retrieve the eager inverse field.- Specified by:
getMappedByValue
in interfaceResult
-
setMappedByValue
Description copied from interface:Result
If this is the result used to select a toMany relationship, the mappedByValue is value of the owner of the toMany relationship. This is to avoid unneeded extra sql to retrieve the eager inverse field.- Specified by:
setMappedByValue
in interfaceResult
-
indexOf
public int indexOf()Description copied from interface:Result
The index of the select within the UNION that the current row corresponds to, or 0. -
load
public Object load(ClassMapping mapping, JDBCStore store, JDBCFetchConfiguration fetch) throws SQLException Description copied from interface:Result
Load a pc object using the given store manager.- Specified by:
load
in interfaceResult
- Throws:
SQLException
-
load
public Object load(ClassMapping mapping, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins) throws SQLException Description copied from interface:Result
Load a pc object using the given store manager.- Specified by:
load
in interfaceResult
- Throws:
SQLException
-
getArray
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getArray
in interfaceResult
- Throws:
SQLException
-
getAsciiStream
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getAsciiStream
in interfaceResult
- Throws:
SQLException
-
getBigDecimal
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getBigDecimal
in interfaceResult
- Throws:
SQLException
-
getBigInteger
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getBigInteger
in interfaceResult
- Throws:
SQLException
-
getBinaryStream
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBinaryStream
in interfaceResult
- Throws:
SQLException
-
getLOBStream
- Specified by:
getLOBStream
in interfaceResult
- Throws:
SQLException
-
getBlob
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBlob
in interfaceResult
- Throws:
SQLException
-
getBoolean
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getBoolean
in interfaceResult
- Throws:
SQLException
-
getByte
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getByte
in interfaceResult
- Throws:
SQLException
-
getBytes
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBytes
in interfaceResult
- Throws:
SQLException
-
getCalendar
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getCalendar
in interfaceResult
- Throws:
SQLException
-
getLocalDate
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getLocalDate
in interfaceResult
- Throws:
SQLException
-
getLocalTime
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getLocalTime
in interfaceResult
- Throws:
SQLException
-
getLocalDateTime
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getLocalDateTime
in interfaceResult
- Throws:
SQLException
-
getOffsetTime
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getOffsetTime
in interfaceResult
- Throws:
SQLException
-
getOffsetDateTime
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getOffsetDateTime
in interfaceResult
- Throws:
SQLException
-
getChar
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getChar
in interfaceResult
- Throws:
SQLException
-
getCharacterStream
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getCharacterStream
in interfaceResult
- Throws:
SQLException
-
getClob
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getClob
in interfaceResult
- Throws:
SQLException
-
getDate
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getDate
in interfaceResult
- Throws:
SQLException
-
getDate
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getDate
in interfaceResult
- Throws:
SQLException
-
getDouble
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getDouble
in interfaceResult
- Throws:
SQLException
-
getFloat
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getFloat
in interfaceResult
- Throws:
SQLException
-
getInt
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getInt
in interfaceResult
- Throws:
SQLException
-
getLocale
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getLocale
in interfaceResult
- Throws:
SQLException
-
getLong
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getLong
in interfaceResult
- Throws:
SQLException
-
getNumber
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getNumber
in interfaceResult
- Throws:
SQLException
-
getObject
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getObject
in interfaceResult
- Parameters:
obj
- the column or id whose data to fetchmetaType
- the type code fromJavaTypes
orJavaSQLTypes
for the type of the data; ifobj
is a column, you may specify -1 to use the column's recorded java typearg
- some JDBC data access methods use an argument, such as aCalendar
orMap
- Throws:
SQLException
-
getSQLObject
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getSQLObject
in interfaceResult
- Throws:
SQLException
-
getRef
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getRef
in interfaceResult
- Throws:
SQLException
-
getShort
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getShort
in interfaceResult
- Throws:
SQLException
-
getString
Description copied from interface:Result
Return the value stored in the given column or id.- Specified by:
getString
in interfaceResult
- Throws:
SQLException
-
getTime
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getTime
in interfaceResult
- Throws:
SQLException
-
getTimestamp
Description copied from interface:Result
Return the value stored in the given column or id; may not be supported by results that are not backed by a SQL result set.- Specified by:
getTimestamp
in interfaceResult
- Throws:
SQLException
-
getArray
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getArray
in interfaceResult
- Throws:
SQLException
-
getAsciiStream
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getAsciiStream
in interfaceResult
- Throws:
SQLException
-
getBigDecimal
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getBigDecimal
in interfaceResult
- Throws:
SQLException
-
getBigInteger
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getBigInteger
in interfaceResult
- Throws:
SQLException
-
getBinaryStream
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBinaryStream
in interfaceResult
- Throws:
SQLException
-
getBlob
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBlob
in interfaceResult
- Throws:
SQLException
-
getBoolean
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getBoolean
in interfaceResult
- Throws:
SQLException
-
getByte
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getByte
in interfaceResult
- Throws:
SQLException
-
getBytes
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getBytes
in interfaceResult
- Throws:
SQLException
-
getCalendar
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getCalendar
in interfaceResult
- Throws:
SQLException
-
getChar
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getChar
in interfaceResult
- Throws:
SQLException
-
getCharacterStream
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getCharacterStream
in interfaceResult
- Throws:
SQLException
-
getClob
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getClob
in interfaceResult
- Throws:
SQLException
-
getDate
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getDate
in interfaceResult
- Throws:
SQLException
-
getDate
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getDate
in interfaceResult
- Throws:
SQLException
-
getDouble
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getDouble
in interfaceResult
- Throws:
SQLException
-
getFloat
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getFloat
in interfaceResult
- Throws:
SQLException
-
getInt
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getInt
in interfaceResult
- Throws:
SQLException
-
getLocale
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getLocale
in interfaceResult
- Throws:
SQLException
-
getLong
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getLong
in interfaceResult
- Throws:
SQLException
-
getNumber
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getNumber
in interfaceResult
- Throws:
SQLException
-
getObject
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getObject
in interfaceResult
- Parameters:
col
- the column whose data to fetcharg
- some JDBC data access methods use an argument, such as aCalendar
orMap
- Throws:
SQLException
-
getSQLObject
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getSQLObject
in interfaceResult
- Throws:
SQLException
-
getRef
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getRef
in interfaceResult
- Throws:
SQLException
-
getShort
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getShort
in interfaceResult
- Throws:
SQLException
-
getString
Description copied from interface:Result
Return the value stored in the given column.- Specified by:
getString
in interfaceResult
- Throws:
SQLException
-
getTime
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getTime
in interfaceResult
- Throws:
SQLException
-
getTimestamp
Description copied from interface:Result
Return the value stored in the given column; may not be supported by results that are not backed by a SQL result set.- Specified by:
getTimestamp
in interfaceResult
- Throws:
SQLException
-
wasNull
Description copied from interface:Result
Return true if the last value fetched was null.- Specified by:
wasNull
in interfaceResult
- Throws:
SQLException
-
startDataRequest
Description copied from interface:Result
Informs this receiver about the application element for which a subsequent data request will be made.- Specified by:
startDataRequest
in interfaceResult
-
endDataRequest
public void endDataRequest()Description copied from interface:Result
Ends a data request. Must be called in conjunction withResult.startDataRequest(java.lang.Object)
. The calls can be nested as follws
startDataRequest (relation); startDataRequest (relationsField); getObject("COLUMN_Y"); endDataRequest (); endDataRequest ();
- Specified by:
endDataRequest
in interfaceResult
-