Class MongoPlatform
- java.lang.Object
-
- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
- org.eclipse.persistence.eis.EISPlatform
-
- org.eclipse.persistence.nosql.adapters.mongo.MongoPlatform
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>
,org.eclipse.persistence.internal.databaseaccess.Platform
public class MongoPlatform extends org.eclipse.persistence.eis.EISPlatform
Platform for Mongo database.- See Also:
- Serialized Form
- Author:
- James
- Since:
- EclipseLink 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BATCH_SIZE
static java.lang.String
COLLECTION
protected boolean
isLikeRegex
Configure if like should be SQL or regex.static java.lang.String
LIMIT
static java.lang.String
OPERATION
Mongo interaction spec properties.static java.lang.String
OPTIONS
static java.lang.String
READ_PREFERENCE
static java.lang.String
SKIP
static java.lang.String
WRITE_CONCERN
-
Fields inherited from class org.eclipse.persistence.eis.EISPlatform
domMethod, isDOMRecordSupported, isIndexedRecordSupported, isMappedRecordSupported, recordConverter, requiresAutoCommit, shouldConvertDataToStrings, supportsLocalTransactions, xmlConversionManager
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery
-
-
Constructor Summary
Constructors Constructor Description MongoPlatform()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
appendExpressionToQueryRow(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
Append the expression and recursively to the query row.protected void
appendExpressionToSortRow(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
Append the order by expression to the sort row.org.eclipse.persistence.internal.databaseaccess.DatasourceCall
buildCallFromStatement(org.eclipse.persistence.internal.expressions.SQLStatement statement, org.eclipse.persistence.queries.DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Override this method to throw an exception by default.javax.resource.cci.InteractionSpec
buildInteractionSpec(org.eclipse.persistence.eis.interactions.EISInteraction interaction)
Allow the platform to build the interaction spec based on properties defined in the interaction.javax.resource.cci.Record
createOutputRecord(org.eclipse.persistence.eis.interactions.EISInteraction interaction, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.eis.EISAccessor accessor)
For updates a separate translation record is required.protected org.eclipse.persistence.sequencing.Sequence
createPlatformDefaultSequence()
INTERNAL: Create platform-default Sequenceprotected java.lang.Object
extractValueFromExpression(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.queries.DatabaseQuery query)
Extract the field or constant value from the comparison expression.void
initializeDefaultQueries(org.eclipse.persistence.descriptors.DescriptorQueryManager queryManager, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Allow the platform to initialize the CRUD queries to defaults.boolean
isLikeRegex()
Return if regex should be used for like.void
setIsLikeRegex(boolean isLikeRegex)
Set if regex should be used for like.void
setValueInRecord(java.lang.String key, java.lang.Object value, javax.resource.cci.MappedRecord record, org.eclipse.persistence.eis.EISAccessor accessor)
Mongo does not support all Java types.boolean
shouldPrepare(org.eclipse.persistence.queries.DatabaseQuery query)
Do not prepare dynamic queries, as the translation row is required.-
Methods inherited from class org.eclipse.persistence.eis.EISPlatform
appendParameter, buildNativeCall, buildRow, buildRows, createDatabaseRowFromDOMRecord, createDOMRecord, createInputRecord, getConversionManager, getRecordConverter, getValueFromRecord, isDOMRecordSupported, isIndexedRecordSupported, isMappedRecordSupported, requiresAutoCommit, setDOMInRecord, setIsDOMRecordSupported, setIsIndexedRecordSupported, setIsMappedRecordSupported, setRecordConverter, setRequiresAutoCommit, setShouldConvertDataToStrings, setSupportsLocalTransactions, shouldConvertDataToStrings, supportsLocalTransactions
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, clone, convertObject, convertObject, copyInto, createConnectionCustomizer, createExpressionFor, getCustomModifyValueForCall, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getDriverVersion, getEndDelimiter, getIdentifierQuoteCharacter, getINClauseLimit, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequencePreallocationSize, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getTimestampQuery, getUpdateSequenceQuery, hasDefaultSequence, initialize, initializePlatformOperators, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle23, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, shouldUseCustomModifyForCall, supportsIdentity, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, supportsSequenceObjects, toString, usesPlatformDefaultSequence
-
-
-
-
Field Detail
-
OPERATION
public static final java.lang.String OPERATION
Mongo interaction spec properties.- See Also:
- Constant Field Values
-
COLLECTION
public static final java.lang.String COLLECTION
- See Also:
- Constant Field Values
-
OPTIONS
public static final java.lang.String OPTIONS
- See Also:
- Constant Field Values
-
READ_PREFERENCE
public static final java.lang.String READ_PREFERENCE
- See Also:
- Constant Field Values
-
WRITE_CONCERN
public static final java.lang.String WRITE_CONCERN
- See Also:
- Constant Field Values
-
SKIP
public static final java.lang.String SKIP
- See Also:
- Constant Field Values
-
LIMIT
public static final java.lang.String LIMIT
- See Also:
- Constant Field Values
-
BATCH_SIZE
public static final java.lang.String BATCH_SIZE
- See Also:
- Constant Field Values
-
isLikeRegex
protected boolean isLikeRegex
Configure if like should be SQL or regex.
-
-
Method Detail
-
setValueInRecord
public void setValueInRecord(java.lang.String key, java.lang.Object value, javax.resource.cci.MappedRecord record, org.eclipse.persistence.eis.EISAccessor accessor)
Mongo does not support all Java types. Convert unsupported types to string.- Overrides:
setValueInRecord
in classorg.eclipse.persistence.eis.EISPlatform
-
isLikeRegex
public boolean isLikeRegex()
Return if regex should be used for like.
-
setIsLikeRegex
public void setIsLikeRegex(boolean isLikeRegex)
Set if regex should be used for like.
-
buildInteractionSpec
public javax.resource.cci.InteractionSpec buildInteractionSpec(org.eclipse.persistence.eis.interactions.EISInteraction interaction)
Allow the platform to build the interaction spec based on properties defined in the interaction.- Overrides:
buildInteractionSpec
in classorg.eclipse.persistence.eis.EISPlatform
-
createOutputRecord
public javax.resource.cci.Record createOutputRecord(org.eclipse.persistence.eis.interactions.EISInteraction interaction, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.eis.EISAccessor accessor)
For updates a separate translation record is required. The output row is used for this.- Overrides:
createOutputRecord
in classorg.eclipse.persistence.eis.EISPlatform
-
initializeDefaultQueries
public void initializeDefaultQueries(org.eclipse.persistence.descriptors.DescriptorQueryManager queryManager, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Allow the platform to initialize the CRUD queries to defaults. Configure the CRUD operations using GET/PUT and DELETE.- Overrides:
initializeDefaultQueries
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
buildCallFromStatement
public org.eclipse.persistence.internal.databaseaccess.DatasourceCall buildCallFromStatement(org.eclipse.persistence.internal.expressions.SQLStatement statement, org.eclipse.persistence.queries.DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Override this method to throw an exception by default. Platforms that support dynamic querying can override this to generate an EISInteraction.- Overrides:
buildCallFromStatement
in classorg.eclipse.persistence.eis.EISPlatform
-
appendExpressionToQueryRow
protected void appendExpressionToQueryRow(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
Append the expression and recursively to the query row.
-
appendExpressionToSortRow
protected void appendExpressionToSortRow(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
Append the order by expression to the sort row.
-
extractValueFromExpression
protected java.lang.Object extractValueFromExpression(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.queries.DatabaseQuery query)
Extract the field or constant value from the comparison expression.
-
shouldPrepare
public boolean shouldPrepare(org.eclipse.persistence.queries.DatabaseQuery query)
Do not prepare dynamic queries, as the translation row is required.- Overrides:
shouldPrepare
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
createPlatformDefaultSequence
protected org.eclipse.persistence.sequencing.Sequence createPlatformDefaultSequence()
INTERNAL: Create platform-default Sequence- Overrides:
createPlatformDefaultSequence
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
-