diff options
author | kmoore | 2011-10-13 17:24:19 +0000 |
---|---|---|
committer | kmoore | 2011-10-13 17:24:19 +0000 |
commit | 8ebbae1c2c432349e184702fa4638fbe3088276c (patch) | |
tree | e61866024b29c8802966f4e0516d1eaec6fc0a6f /jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core | |
parent | 112a2282a56f03cb6b0887994bb6bc220d3bf334 (diff) | |
download | webtools.dali-8ebbae1c2c432349e184702fa4638fbe3088276c.tar.gz webtools.dali-8ebbae1c2c432349e184702fa4638fbe3088276c.tar.xz webtools.dali-8ebbae1c2c432349e184702fa4638fbe3088276c.zip |
Bug 360731 - [Multi-Tenancy] Invalid validation against default tenant discriminator column on subentity with JOINED strategy - no longer validating the default tenant discriminator columns in this case
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core')
2 files changed, 16 insertions, 10 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java index 723a2f8e9c..b397ad2af5 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java @@ -562,7 +562,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3 return (EclipseLinkPersistenceUnit) super.getPersistenceUnit(); } - protected boolean isMultitenantMetadataAllowed() { + protected boolean isSpecifiedMultitenantMetadataAllowed() { return this.getParent().isMultitenantMetadataAllowed(); } @@ -635,8 +635,8 @@ public class JavaEclipseLinkMultitenancyImpl2_3 public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) { //TODO validate 2.3 eclipselink does not use TABLE_PER_CLASS (and the new PROTECTED?? this wouldn't be in the 2.3 source) super.validate(messages, reporter, astRoot); - if (getSpecifiedTenantDiscriminatorColumnsSize() > 0) { - if (!this.isMultitenantMetadataAllowed()) { + if (this.getSpecifiedTenantDiscriminatorColumnsSize() > 0) { + if (!this.isSpecifiedMultitenantMetadataAllowed()) { messages.add( DefaultEclipseLinkJpaValidationMessages.buildMessage( IMessage.NORMAL_SEVERITY, @@ -647,7 +647,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3 ) ); } - else if (isMultitenantAnnotationSpecified()) { + else if (this.isMultitenantAnnotationSpecified()) { for (JavaTenantDiscriminatorColumn2_3 column : this.getSpecifiedTenantDiscriminatorColumns()) { column.validate(messages, reporter, astRoot); } @@ -664,8 +664,11 @@ public class JavaEclipseLinkMultitenancyImpl2_3 ); } } - for (JavaVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) { - column.validate(messages, reporter, astRoot); + if (this.isSpecifiedMultitenantMetadataAllowed()) { + //bug 360731 no need to validate, they will be validated where they are specified + for (JavaVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) { + column.validate(messages, reporter, astRoot); + } } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java index c146990dfc..7e44a93ecb 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java @@ -609,7 +609,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3 return (javaTypeMapping == null) ? null : javaTypeMapping.getMultitenancy(); } - protected boolean isMultitenantMetadataAllowed() { + protected boolean isSpecifiedMultitenantMetadataAllowed() { return this.getParent().isMultitenantMetadataAllowed(); } @@ -663,7 +663,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3 public void validate(List<IMessage> messages, IReporter reporter) { super.validate(messages, reporter); if (getSpecifiedTenantDiscriminatorColumnsSize() > 0) { - if (!this.isMultitenantMetadataAllowed()) { + if (!this.isSpecifiedMultitenantMetadataAllowed()) { messages.add( DefaultEclipseLinkJpaValidationMessages.buildMessage( IMessage.NORMAL_SEVERITY, @@ -680,8 +680,11 @@ public class OrmEclipseLinkMultitenancyImpl2_3 } } } - for (OrmVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) { - column.validate(messages, reporter); + if (this.isSpecifiedMultitenantMetadataAllowed()) { + //bug 360731 no need to validate, they will be validated where they are specified + for (OrmVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) { + column.validate(messages, reporter); + } } } |