Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 141927 Details for
Bug 283759
JPA 2.0 Schema/Catalog on SequenceGenerator
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Slightly updated patch
283759_090717.patch (text/plain), 27.78 KB, created by
Andrei Ilitchev
on 2009-07-17 16:30:32 EDT
(
hide
)
Description:
Slightly updated patch
Filename:
MIME Type:
Creator:
Andrei Ilitchev
Created:
2009-07-17 16:30:32 EDT
Size:
27.78 KB
patch
obsolete
>Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java (working copy) >@@ -2066,7 +2066,7 @@ > * If the platform supportsSequenceObjects then (at least) one of buildSelectQueryForSequenceObject > * methods should return non-null query. > */ >- public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { >+ public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { > return null; > } > >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/localization/i18n/LoggingLocalizationResource.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/localization/i18n/LoggingLocalizationResource.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/internal/localization/i18n/LoggingLocalizationResource.java (working copy) >@@ -190,6 +190,8 @@ > { "metadata_default_table_generator_name", "The table generator name defined within [{0}] is being defaulted to: {1}." }, > { "metadata_default_table_generator_schema", "The table generator schema defined within [{0}] is being defaulted to: {1}." }, > { "metadata_default_table_generator_catalog", "The table generator catalog defined within [{0}] is being defaulted to: {1}." }, >+ { "metadata_default_sequence_generator_schema", "The sequence generator schema defined within [{0}] is being defaulted to: {1}." }, >+ { "metadata_default_sequence_generator_catalog", "The sequence generator catalog defined within [{0}] is being defaulted to: {1}." }, > { "metadata_default_join_table_name", "The join table name for the many to many mapping [{0}] is being defaulted to: {1}." }, > { "metadata_default_join_schema", "The join table schema for the many to many mapping [{0}] is being defaulted to: {1}." }, > { "metadata_default_join_catalog", "The join table catalog for the many to many mapping [{0}] is being defaulted to: {1}." }, >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/InformixPlatform.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/InformixPlatform.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/InformixPlatform.java (working copy) >@@ -279,8 +279,8 @@ > * If the platform supportsSequenceObjects then (at least) one of buildSelectQueryForSequenceObject > * methods should return non-null query. > */ >- public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { >- return new ValueReadQuery("select " + getQualifiedName(seqName) + ".nextval from systables where tabid = 1"); >+ public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { >+ return new ValueReadQuery("select " + qualifiedSeqName + ".nextval from systables where tabid = 1"); > } > > /** >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/OraclePlatform.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/OraclePlatform.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/OraclePlatform.java (working copy) >@@ -478,20 +478,20 @@ > * INTERNAL: > * Produce a DataReadQuery which updates(!) the sequence number in the db > * and returns it. Currently implemented on Oracle only. >- * @param sequenceName Name known by Oracle to be a defined sequence >+ * @param qualifiedSeqName known by Oracle to be a defined sequence > */ >- public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { >- return new ValueReadQuery("SELECT " + getQualifiedName(seqName) + ".NEXTVAL FROM DUAL"); >+ public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { >+ return new ValueReadQuery("SELECT " + qualifiedSeqName + ".NEXTVAL FROM DUAL"); > } > > /** > * INTERNAL: >- * Though Oracle doesn't support identity it could be immitated, >+ * Though Oracle doesn't support identity it could be imitated, > * see comment to setSupportsIdentity method. >- * @param sequenceName Name known by Oracle to be a defined sequence >+ * @param qualifiedSeqName known by Oracle to be a defined sequence > */ >- public ValueReadQuery buildSelectQueryForIdentity(String seqName, Integer size) { >- return new ValueReadQuery("SELECT " + getQualifiedName(seqName) + ".CURRVAL FROM DUAL"); >+ public ValueReadQuery buildSelectQueryForIdentity(String qualifiedSeqName, Integer size) { >+ return new ValueReadQuery("SELECT " + qualifiedSeqName + ".CURRVAL FROM DUAL"); > } > > /** >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java (working copy) >@@ -237,8 +237,8 @@ > * If the platform supportsSequenceObjects then (at least) one of buildSelectQueryForSequenceObject > * methods should return non-null query. > */ >- public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { >- return new ValueReadQuery("select nextval(\'" + getQualifiedName(seqName) + "\')"); >+ public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { >+ return new ValueReadQuery("select nextval(\'" + qualifiedSeqName + "\')"); > } > > /** >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/TimesTenPlatform.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/TimesTenPlatform.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/platform/database/TimesTenPlatform.java (working copy) >@@ -140,12 +140,12 @@ > > /** > * INTERNAL: >- * Produce a DataReadQuery which updates(!) the sequence number in the db >+ * Produce a DataReadQuery which updates(!) the sequence number in the db > * and returns it. >- * @param sequenceName Name known by TimesTen to be a defined sequence >+ * @param qualifiedSeqName known by TimesTen to be a defined sequence > */ >- public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { >- return new ValueReadQuery("SELECT " + getQualifiedName(seqName) + ".NEXTVAL FROM DUAL"); >+ public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { >+ return new ValueReadQuery("SELECT " + qualifiedSeqName + ".NEXTVAL FROM DUAL"); > } > > /** >@@ -157,17 +157,6 @@ > } > > /** >- * Prepend sequence name with table qualifier (if any) >- */ >- protected String getQualifiedSequenceName(String seqName) { >- if (getTableQualifier().equals("")) { >- return seqName; >- } else { >- return getTableQualifier() + "." + seqName; >- } >- } >- >- /** > * INTERNAL: > * Used for pessimistic locking. > */ >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/DefaultSequence.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/DefaultSequence.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/DefaultSequence.java (working copy) >@@ -149,7 +149,7 @@ > * It's a chance to do initialization. > */ > protected void onConnect() { >- // nothing to do >+ qualifier = getDefaultSequence().getQualifier(); > } > > /** >@@ -158,6 +158,13 @@ > * It's a chance to do deinitialization. > */ > public void onDisconnect() { >- // nothing to do >+ qualifier = ""; > } >+ >+ /** >+ * INTERNAL: >+ * Ignored, getDefaultSequence().getQualifier() used instead. >+ */ >+ public void setQualifier(String qualifier) { >+ } > } >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/NativeSequence.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/NativeSequence.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/NativeSequence.java (working copy) >@@ -121,9 +121,9 @@ > */ > protected ValueReadQuery buildSelectQuery(String seqName, Integer size) { > if(this.shouldAcquireValueAfterInsert()) { >- return ((DatabasePlatform)getDatasourcePlatform()).buildSelectQueryForIdentity(seqName, size); >+ return ((DatabasePlatform)getDatasourcePlatform()).buildSelectQueryForIdentity(getQualified(seqName), size); > } else { >- return ((DatabasePlatform)getDatasourcePlatform()).buildSelectQueryForSequenceObject(seqName, size); >+ return ((DatabasePlatform)getDatasourcePlatform()).buildSelectQueryForSequenceObject(getQualified(seqName), size); > } > } > >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/Sequence.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/Sequence.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/Sequence.java (working copy) >@@ -48,6 +48,11 @@ > // number of times onConnect was called - number of times onDisconnect was called > protected int depth; > >+ protected String qualifier = ""; >+ // true indicates that qualifier was set through setQualifier method, >+ // false - copied from platform (or not set at all). >+ protected boolean isCustomQualifier; >+ > public Sequence() { > super(); > } >@@ -253,6 +258,9 @@ > */ > public void onConnect(Platform platform) { > setDatasourcePlatform(platform); >+ if(depth==0 && !isCustomQualifier) { >+ qualifier = getDatasourcePlatform().getTableQualifier(); >+ } > onConnect(); > depth++; > } >@@ -272,6 +280,9 @@ > public void onDisconnect(Platform platform) { > if (isConnected()) { > depth--; >+ if(depth==0 && !isCustomQualifier) { >+ qualifier = ""; >+ } > // Can no longer disconnect sequences, as they are part of descriptor shared meta-data. > } > } >@@ -306,4 +317,40 @@ > throw ValidationException.sequenceCannotBeConnectedToTwoPlatforms(getName(), name1, name2); > } > } >+ >+ /** >+ * INTERNAL: >+ */ >+ public void setQualifier(String qualifier) { >+ if(qualifier == null) { >+ qualifier = ""; >+ } >+ this.isCustomQualifier = qualifier.length() > 0; >+ this.qualifier = qualifier; >+ } >+ >+ /** >+ * INTERNAL: >+ */ >+ public boolean isCustomQualifier() { >+ return isCustomQualifier; >+ } >+ >+ /** >+ * INTERNAL: >+ */ >+ public String getQualifier() { >+ return qualifier; >+ } >+ >+ /** >+ * INTERNAL: >+ */ >+ public String getQualified(String str) { >+ if (qualifier.equals("")) { >+ return str; >+ } else { >+ return qualifier + "." + str; >+ } >+ } > } >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/TableSequence.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/TableSequence.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/TableSequence.java (working copy) >@@ -40,9 +40,6 @@ > /** Hold the name of the column in the sequence table which specifies the sequence name */ > protected String nameFieldName = "SEQ_NAME"; > >- /** Hold the name of the table qualifier */ >- protected String qualifier = ""; >- > public TableSequence() { > super(false, true); > setTableName(defaultTableName); >@@ -141,11 +138,7 @@ > } > > public String getQualifiedTableName() { >- if (qualifier.equals("")) { >- return getTableName(); >- } else { >- return qualifier + "." + getTableName(); >- } >+ return getQualified(getTableName()); > } > > public void setTable(DatabaseTable table) { >@@ -183,20 +176,4 @@ > > return query; > } >- >- /** >- * INTERNAL: >- */ >- public void onConnect() { >- qualifier = getDatasourcePlatform().getTableQualifier(); >- super.onConnect(); >- } >- >- /** >- * INTERNAL: >- */ >- public void onDisconnect() { >- super.onDisconnect(); >- qualifier = ""; >- } > } >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/UnaryTableSequence.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/UnaryTableSequence.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/sequencing/UnaryTableSequence.java (working copy) >@@ -33,7 +33,6 @@ > protected String selectString2; > protected int updateStringBufferSize; > protected int selectStringBufferSize; >- protected String qualifier = ""; > > public UnaryTableSequence() { > super(false, true); >@@ -92,7 +91,6 @@ > * INTERNAL: > */ > public void onConnect() { >- qualifier = getDatasourcePlatform().getTableQualifier(); > super.onConnect(); > initialize(); > } >@@ -103,7 +101,6 @@ > public void onDisconnect() { > clear(); > super.onDisconnect(); >- qualifier = ""; > } > > protected ValueReadQuery buildSelectQuery(String seqName, Integer size) { >Index: foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/tools/schemaframework/SequenceObjectDefinition.java >=================================================================== >--- foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/tools/schemaframework/SequenceObjectDefinition.java (revision 4683) >+++ foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/tools/schemaframework/SequenceObjectDefinition.java (working copy) >@@ -148,4 +148,13 @@ > this.buildAlterIncrementWriter(session, schemaWriter); > } > } >+ >+ /** >+ * INTERNAL: >+ * Most major databases support a creator name scope. >+ * This means whenever the database object is referenced, it must be qualified. >+ */ >+ public String getFullName() { >+ return sequence.getQualified(getName()); >+ } > } >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/EntityAccessor.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/EntityAccessor.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/EntityAccessor.java (working copy) >@@ -1130,7 +1130,7 @@ > protected void processSequenceGenerator() { > // Process the xml defined sequence generator first. > if (m_sequenceGenerator != null) { >- getProject().addSequenceGenerator(m_sequenceGenerator); >+ getProject().addSequenceGenerator(m_sequenceGenerator, getDescriptor().getDefaultCatalog(), getDescriptor().getDefaultSchema()); > } > > // Process the annotation defined sequence generator second. >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/MappedSuperclassAccessor.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/MappedSuperclassAccessor.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/classes/MappedSuperclassAccessor.java (working copy) >@@ -1038,7 +1038,7 @@ > protected void processSequenceGenerator() { > if (isAnnotationPresent(SequenceGenerator.class)) { > // Ask the common processor to process what we found. >- getProject().addSequenceGenerator(new SequenceGeneratorMetadata(getAnnotation(SequenceGenerator.class), getAccessibleObject())); >+ getProject().addSequenceGenerator(new SequenceGeneratorMetadata(getAnnotation(SequenceGenerator.class), getAccessibleObject()), getDescriptor().getDefaultCatalog(), getDescriptor().getDefaultSchema()); > } > } > >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/mappings/BasicAccessor.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/mappings/BasicAccessor.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/accessors/mappings/BasicAccessor.java (working copy) >@@ -321,7 +321,7 @@ > > // Add the sequence generator to the project if one is set. > if (m_sequenceGenerator != null) { >- getProject().addSequenceGenerator(m_sequenceGenerator); >+ getProject().addSequenceGenerator(m_sequenceGenerator, getDescriptor().getDefaultCatalog(), getDescriptor().getDefaultSchema()); > } > } > >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataLogger.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataLogger.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataLogger.java (working copy) >@@ -116,6 +116,9 @@ > public static final String TABLE_GENERATOR_SCHEMA = "metadata_default_table_generator_schema"; > public static final String TABLE_GENERATOR_CATALOG = "metadata_default_table_generator_catalog"; > >+ public static final String SEQUENCE_GENERATOR_SCHEMA = "metadata_default_sequence_generator_schema"; >+ public static final String SEQUENCE_GENERATOR_CATALOG = "metadata_default_sequence_generator_catalog"; >+ > public static final String JOIN_TABLE_NAME = "metadata_default_join_table_name"; > public static final String JOIN_TABLE_SCHEMA = "metadata_default_join_table_schema"; > public static final String JOIN_TABLE_CATALOG = "metadata_default_join_table_catalog"; >@@ -242,6 +245,9 @@ > addContextString(TABLE_GENERATOR_SCHEMA); > addContextString(TABLE_GENERATOR_CATALOG); > >+ addContextString(SEQUENCE_GENERATOR_SCHEMA); >+ addContextString(SEQUENCE_GENERATOR_CATALOG); >+ > addContextString(JOIN_TABLE_NAME); > addContextString(JOIN_TABLE_SCHEMA); > addContextString(JOIN_TABLE_CATALOG); >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataProject.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataProject.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/MetadataProject.java (working copy) >@@ -499,7 +499,7 @@ > * Add a sequence generator metadata to the project. The actual processing > * isn't done till processSequencing is called. > */ >- public void addSequenceGenerator(SequenceGeneratorMetadata sequenceGenerator) { >+ public void addSequenceGenerator(SequenceGeneratorMetadata sequenceGenerator, String defaultCatalog, String defaultSchema) { > String name = sequenceGenerator.getName(); > > // Check if the sequence generator name uses a reserved name. >@@ -509,6 +509,12 @@ > throw ValidationException.sequenceGeneratorUsingAReservedName(DEFAULT_IDENTITY_GENERATOR, sequenceGenerator.getLocation()); > } > >+ // Catalog could be "" or null, need to check for an XML default. >+ sequenceGenerator.setCatalog(MetadataHelper.getName(sequenceGenerator.getCatalog(), defaultCatalog, sequenceGenerator.getCatalogContext(), m_logger, sequenceGenerator.getLocation())); >+ // Schema could be "" or null, need to check for an XML default. >+ sequenceGenerator.setSchema(MetadataHelper.getName(sequenceGenerator.getSchema(), defaultSchema, sequenceGenerator.getSchemaContext(), m_logger, sequenceGenerator.getLocation())); >+ >+ > // Check if the name is used with a table generator. > TableGeneratorMetadata tableGenerator = m_tableGenerators.get(name); > if (tableGenerator != null) { >@@ -1006,6 +1012,7 @@ > } > > NativeSequence sequence = new NativeSequence(seqName, allocationSize, false); >+ sequence.setQualifier(sequenceGenerator.getQualifier()); > sequences.put(sequenceGeneratorName, sequence); > > if (sequenceGeneratorName.equals(DEFAULT_AUTO_GENERATOR)) { >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/sequencing/SequenceGeneratorMetadata.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/sequencing/SequenceGeneratorMetadata.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/sequencing/SequenceGeneratorMetadata.java (working copy) >@@ -14,6 +14,7 @@ > ******************************************************************************/ > package org.eclipse.persistence.internal.jpa.metadata.sequencing; > >+import org.eclipse.persistence.internal.jpa.metadata.MetadataLogger; > import org.eclipse.persistence.internal.jpa.metadata.ORMetadata; > import org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAccessibleObject; > import org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotation; >@@ -30,6 +31,8 @@ > private Integer m_initialValue; > > private String m_name; >+ private String m_schema; >+ private String m_catalog; > private String m_sequenceName; > > /** >@@ -48,6 +51,8 @@ > m_allocationSize = (Integer) sequenceGenerator.getAttribute("allocationSize"); > m_initialValue = (Integer) sequenceGenerator.getAttribute("initialValue"); > m_name = (String) sequenceGenerator.getAttributeString("name"); >+ m_schema = (String) sequenceGenerator.getAttribute("schema"); >+ m_catalog = (String) sequenceGenerator.getAttribute("catalog"); > m_sequenceName = (String) sequenceGenerator.getAttributeString("sequenceName"); > } > >@@ -87,6 +92,37 @@ > > /** > * INTERNAL: >+ * Used for OX mapping. >+ */ >+ public String getCatalog() { >+ return m_catalog; >+ } >+ >+ /** >+ * INTERNAL: >+ * Used for processing. >+ */ >+ public String getQualifier() { >+ if(m_catalog.length() == 0) { >+ if(m_schema.length() == 0) { >+ return ""; >+ } else { >+ return m_schema; >+ } >+ } else { >+ return m_catalog + '.' + m_schema; >+ } >+ } >+ >+ /** >+ * INTERNAL: >+ */ >+ public String getCatalogContext() { >+ return MetadataLogger.SEQUENCE_GENERATOR_CATALOG; >+ } >+ >+ /** >+ * INTERNAL: > * To satisfy the abstract getIdentifier() method from ORMetadata. > */ > @Override >@@ -114,6 +150,21 @@ > * INTERNAL: > * Used for OX mapping. > */ >+ public String getSchema() { >+ return m_schema; >+ } >+ >+ /** >+ * INTERNAL: >+ */ >+ public String getSchemaContext() { >+ return MetadataLogger.SEQUENCE_GENERATOR_SCHEMA; >+ } >+ >+ /** >+ * INTERNAL: >+ * Used for OX mapping. >+ */ > public String getSequenceName() { > return m_sequenceName; > } >@@ -130,6 +181,14 @@ > * INTERNAL: > * Used for OX mapping. > */ >+ public void setCatalog(String catalog) { >+ m_catalog = catalog; >+ } >+ >+ /** >+ * INTERNAL: >+ * Used for OX mapping. >+ */ > public void setInitialValue(Integer initialValue) { > m_initialValue = initialValue; > } >@@ -146,6 +205,14 @@ > * INTERNAL: > * Used for OX mapping. > */ >+ public void setSchema(String schema) { >+ m_schema = schema; >+ } >+ >+ /** >+ * INTERNAL: >+ * Used for OX mapping. >+ */ > public void setSequenceName(String sequenceName) { > m_sequenceName = sequenceName; > } >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappings.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappings.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappings.java (working copy) >@@ -591,7 +591,7 @@ > // Add the XML sequence generators to the project. > for (SequenceGeneratorMetadata sequenceGenerator : m_sequenceGenerators) { > sequenceGenerator.initXMLObject(m_file, this); >- m_project.addSequenceGenerator(sequenceGenerator); >+ m_project.addSequenceGenerator(sequenceGenerator, getDefaultCatalog(), getDefaultSchema()); > } > > // Add the XML named queries to the project. >Index: jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappingsMappingProject.java >=================================================================== >--- jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappingsMappingProject.java (revision 4683) >+++ jpa/org.eclipse.persistence.jpa/src/org/eclipse/persistence/internal/jpa/metadata/xml/XMLEntityMappingsMappingProject.java (working copy) >@@ -1952,6 +1952,8 @@ > sequenceNameMapping.setXPath("@sequence-name"); > descriptor.addMapping(sequenceNameMapping); > >+ descriptor.addMapping(getCatalogAttributeMapping()); >+ descriptor.addMapping(getSchemaAttributeMapping()); > descriptor.addMapping(getInitialValueAttributeMapping()); > descriptor.addMapping(getAllocationSizeAttributeMapping()); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 283759
:
141821
| 141927