Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2012-05-14 12:44:22 +0000
committerkmoore2012-05-14 12:44:22 +0000
commit6363fbf59f16649103eb8ed4443f2e7fed6fdbb6 (patch)
tree96025072a36ceafe681d7172c4bf07b65b0412e1
parentc5ed29d97a49f5387ce2bc7aba447fa875528bdd (diff)
downloadwebtools.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
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentTypeImpl.java5
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() {

Back to the top