Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2008-05-13 15:35:38 +0000
committerkmoore2008-05-13 15:35:38 +0000
commit33d6875bafd5faece43c279e002fd1b0d266cdea (patch)
tree3ac6c1ca02e7568ef3cbb4ad46419d9c5f78ec0e
parent3c7391836e2fbeb494670f6648b418280c3cb265 (diff)
downloadwebtools.dali-33d6875bafd5faece43c279e002fd1b0d266cdea.tar.gz
webtools.dali-33d6875bafd5faece43c279e002fd1b0d266cdea.tar.xz
webtools.dali-33d6875bafd5faece43c279e002fd1b0d266cdea.zip
231228 - TableGenerator in java and orm.xml does not have a default schema or catalog
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTableGenerator.java18
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java34
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java12
4 files changed, 85 insertions, 1 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java
index d073098234..b6c5c2f981 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java
@@ -121,6 +121,12 @@ public class GenericJavaTableGenerator extends AbstractJavaGenerator
return this.defaultCatalog;
}
+ protected void setDefaultCatalog(String newDefaultCatalog) {
+ String oldDefaultCatalog = this.defaultCatalog;
+ this.defaultCatalog = newDefaultCatalog;
+ firePropertyChanged(DEFAULT_CATALOG_PROPERTY, oldDefaultCatalog, newDefaultCatalog);
+ }
+
public String getSchema() {
return (this.getSpecifiedSchema() == null) ? getDefaultSchema() : this.getSpecifiedSchema();
}
@@ -306,7 +312,9 @@ public class GenericJavaTableGenerator extends AbstractJavaGenerator
super.update(tableGenerator);
this.setSpecifiedTable_(this.specifiedTable(tableGenerator));
this.setSpecifiedCatalog_(this.specifiedCatalog(tableGenerator));
+ this.setDefaultCatalog(this.defaultCatalog());
this.setSpecifiedSchema_(this.specifiedSchema(tableGenerator));
+ this.setDefaultSchema(this.defaultSchema());
this.setSpecifiedPkColumnName_(this.specifiedPkColumnName(tableGenerator));
this.setSpecifiedValueColumnName_(this.specifiedValueColumnName(tableGenerator));
this.setSpecifiedPkColumnValue_(this.specifiedPkColumnValue(tableGenerator));
@@ -362,6 +370,20 @@ public class GenericJavaTableGenerator extends AbstractJavaGenerator
return tableGenerator.getPkColumnValue();
}
+ protected String defaultSchema() {
+ if (getEntityMappings() != null) {
+ return getEntityMappings().getSchema();
+ }
+ return getPersistenceUnit().getDefaultSchema();
+ }
+
+ protected String defaultCatalog() {
+ if (getEntityMappings() != null) {
+ return getEntityMappings().getCatalog();
+ }
+ return getPersistenceUnit().getDefaultCatalog();
+ }
+
public Table getDbTable() {
Schema schema = this.getDbSchema();
return (schema == null) ? null : schema.tableNamed(this.getTable());
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTableGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTableGenerator.java
index 92cf9cca58..97681f5a9d 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTableGenerator.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTableGenerator.java
@@ -111,6 +111,12 @@ public class GenericOrmTableGenerator extends AbstractOrmGenerator<XmlTableGener
public String getDefaultCatalog() {
return this.defaultCatalog;
}
+
+ protected void setDefaultCatalog(String newDefaultCatalog) {
+ String oldDefaultCatalog = this.defaultCatalog;
+ this.defaultCatalog = newDefaultCatalog;
+ firePropertyChanged(TableGenerator.DEFAULT_CATALOG_PROPERTY, oldDefaultCatalog, newDefaultCatalog);
+ }
public String getSchema() {
return (this.getSpecifiedSchema() == null) ? getDefaultSchema() : this.getSpecifiedSchema();
@@ -140,7 +146,7 @@ public class GenericOrmTableGenerator extends AbstractOrmGenerator<XmlTableGener
protected void setDefaultSchema(String newDefaultSchema) {
String oldDefaultSchema = this.defaultSchema;
this.defaultSchema = newDefaultSchema;
- firePropertyChanged(this.defaultSchema, oldDefaultSchema, newDefaultSchema);
+ firePropertyChanged(TableGenerator.DEFAULT_SCHEMA_PROPERTY, oldDefaultSchema, newDefaultSchema);
}
public String getPkColumnName() {
@@ -328,7 +334,9 @@ public class GenericOrmTableGenerator extends AbstractOrmGenerator<XmlTableGener
super.update(tableGenerator);
this.setSpecifiedTable_(this.specifiedTable(tableGenerator));
this.setSpecifiedCatalog_(this.specifiedCatalog(tableGenerator));
+ this.setDefaultCatalog(this.defaultCatalog());
this.setSpecifiedSchema_(this.specifiedSchema(tableGenerator));
+ this.setDefaultSchema(this.defaultSchema());
this.setSpecifiedPkColumnName_(this.specifiedPkColumnName(tableGenerator));
this.setSpecifiedValueColumnName_(this.specifiedValueColumnName(tableGenerator));
this.setSpecifiedPkColumnValue_(this.specifiedPkColumnValue(tableGenerator));
@@ -360,6 +368,14 @@ public class GenericOrmTableGenerator extends AbstractOrmGenerator<XmlTableGener
return tableGenerator.getPkColumnValue();
}
+ protected String defaultSchema() {
+ return getEntityMappings().getSchema();
+ }
+
+ protected String defaultCatalog() {
+ return getEntityMappings().getCatalog();
+ }
+
protected void updateUniqueConstraints(XmlTableGenerator tableGenerator) {
ListIterator<OrmUniqueConstraint> uniqueConstraints = uniqueConstraints();
ListIterator<XmlUniqueConstraint> resourceUniqueConstraints;
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java
index 6b94bcbf26..84f2b63114 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java
@@ -13,16 +13,22 @@ package org.eclipse.jpt.core.tests.internal.context.java;
import java.util.Iterator;
import java.util.ListIterator;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jpt.core.JptCorePlugin;
+import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.Generator;
import org.eclipse.jpt.core.context.IdMapping;
import org.eclipse.jpt.core.context.TableGenerator;
import org.eclipse.jpt.core.context.UniqueConstraint;
import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
+import org.eclipse.jpt.core.context.orm.OrmEntity;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
+import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
+import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@@ -212,6 +218,34 @@ public class JavaTableGeneratorTests extends ContextModelTestCase
assertEquals("mySchema", idMapping.getTableGenerator().getSpecifiedSchema());
}
+ public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
+ XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
+ mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
+ xmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
+
+ createTestEntityWithTableGenerator();
+
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
+ IdMapping idMapping = (IdMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
+
+ assertNull(idMapping.getTableGenerator().getDefaultSchema());
+
+ ormEntity.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
+ assertEquals("FOO", idMapping.getTableGenerator().getDefaultSchema());
+
+ ormEntity.getEntityMappings().setSpecifiedSchema("BAR");
+ assertEquals("BAR", idMapping.getTableGenerator().getDefaultSchema());
+
+ ormEntity.getTable().setSpecifiedSchema("XML_SCHEMA");
+ assertEquals("BAR", idMapping.getTableGenerator().getDefaultSchema());
+
+ entityMappings().removeOrmPersistentType(0);
+ addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+ //default schema taken from persistence-unit-defaults not entity-mappings since the entity is not in an orm.xml file
+ assertEquals("FOO", ((IdMapping) javaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator().getDefaultSchema());
+ }
+
public void testSetSpecifiedSchema() throws Exception {
createTestEntityWithTableGenerator();
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java
index 9603ba7da0..af290df2df 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java
@@ -262,6 +262,18 @@ public class OrmTableGeneratorTests extends ContextModelTestCase
assertNull(tableGenerator.getSpecifiedSchema());
}
+ public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
+ TableGenerator tableGenerator = entityMappings().addTableGenerator(0);
+
+ assertNull(tableGenerator.getDefaultSchema());
+
+ tableGenerator.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
+ assertEquals("FOO", tableGenerator.getDefaultSchema());
+
+ tableGenerator.getEntityMappings().setSpecifiedSchema("BAR");
+ assertEquals("BAR", tableGenerator.getDefaultSchema());
+ }
+
public void testUpdateSpecifiedCatalog() throws Exception {
TableGenerator tableGenerator = entityMappings().addTableGenerator(0);
XmlTableGenerator tableGeneratorResource = ormResource().getEntityMappings().getTableGenerators().get(0);

Back to the top