diff options
author | kmoore | 2012-05-14 12:44:22 +0000 |
---|---|---|
committer | kmoore | 2012-05-14 12:44:22 +0000 |
commit | 6363fbf59f16649103eb8ed4443f2e7fed6fdbb6 (patch) | |
tree | 96025072a36ceafe681d7172c4bf07b65b0412e1 | |
parent | c5ed29d97a49f5387ce2bc7aba447fa875528bdd (diff) | |
download | webtools.dali-6363fbf59f16649103eb8ed4443f2e7fed6fdbb6.tar.gz webtools.dali-6363fbf59f16649103eb8ed4443f2e7fed6fdbb6.tar.xz webtools.dali-6363fbf59f16649103eb8ed4443f2e7fed6fdbb6.zip |
Bug 379051 - Rename a class with java queries that is listed in the orm.xml, cannot fix jpql query validation errors
2 files changed, 11 insertions, 12 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java index 6d0d60bee5..35bde89e52 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java @@ -249,8 +249,8 @@ public abstract class SpecifiedOrmPersistentType * @see #syncJavaPersistentType() */ protected void updateJavaPersistentType() { - String name = this.getName(); - if (name == null) { + JavaResourceType resourceType = this.resolveJavaResourceType(); + if (resourceType == null) { if (this.javaPersistentType != null) { this.javaPersistentType.dispose(); this.setJavaPersistentType(null); @@ -258,14 +258,17 @@ public abstract class SpecifiedOrmPersistentType } else { if (this.javaPersistentType == null) { - this.setJavaPersistentType(this.buildJavaPersistentType()); + this.setJavaPersistentType(this.buildJavaPersistentType(resourceType)); } else { - if (this.javaPersistentType.getName().equals(name)) { + // bug 379051 using == here because it is possible that the names are the same, + // but the location has changed: the java resource type has moved from "external" + // to part of the jpa project's jpa files. + if (this.javaPersistentType.getJavaResourceType() == resourceType) { this.javaPersistentType.update(); } else { this.javaPersistentType.dispose(); - this.setJavaPersistentType(this.buildJavaPersistentType()); + this.setJavaPersistentType(this.buildJavaPersistentType(resourceType)); } } } @@ -282,11 +285,6 @@ public abstract class SpecifiedOrmPersistentType return (JavaResourceType) this.getJpaProject().getJavaResourceType(this.name, Kind.TYPE); } - protected JavaPersistentType buildJavaPersistentType() { - JavaResourceType jrt = this.resolveJavaResourceType(); - return jrt != null ? this.buildJavaPersistentType(jrt) : null; - } - protected JavaPersistentType buildJavaPersistentType(JavaResourceType jrt) { return this.getJpaFactory().buildJavaPersistentType(this, jrt); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentTypeImpl.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentTypeImpl.java index 5f762ba74e..aa98c24a99 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentTypeImpl.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentTypeImpl.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.orm; import java.util.List; +import org.eclipse.jpt.common.core.resource.java.JavaResourceType; import org.eclipse.jpt.jpa.core.context.PersistentType; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; import org.eclipse.jpt.jpa.core.context.orm.EntityMappings; @@ -120,11 +121,11 @@ public class EclipseLinkOrmPersistentTypeImpl } @Override - protected JavaPersistentType buildJavaPersistentType() { + protected JavaPersistentType buildJavaPersistentType(JavaResourceType javaResourceType) { if (this.isDynamic()) { return this.buildVirtualJavaPersistentType(); } - return super.buildJavaPersistentType(); + return super.buildJavaPersistentType(javaResourceType); } protected JavaPersistentType buildVirtualJavaPersistentType() { |