Author: dwoods
Date: Sat Apr 10 02:32:07 2010
New Revision: 932663

URL: http://svn.apache.org/viewvc?rev=932663&view=rev
Log:
OPENJPA-1611: fix EMBEDDED attr type.  Merged in from trunk r930721 commit by 
Fay.

Modified:
    
openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/TestMetamodel.java
    
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/Members.java

Modified: 
openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/TestMetamodel.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/TestMetamodel.java?rev=932663&r1=932662&r2=932663&view=diff
==============================================================================
--- 
openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/TestMetamodel.java
 (original)
+++ 
openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/TestMetamodel.java
 Sat Apr 10 02:32:07 2010
@@ -38,6 +38,8 @@ import javax.persistence.metamodel.Plura
 import javax.persistence.metamodel.Type.PersistenceType;
 
 import org.apache.openjpa.meta.ClassMetaData;
+import org.apache.openjpa.persistence.embed.Address;
+import org.apache.openjpa.persistence.embed.Geocode;
 import org.apache.openjpa.persistence.enhance.identity.Book;
 import org.apache.openjpa.persistence.enhance.identity.BookId;
 import org.apache.openjpa.persistence.enhance.identity.Library;
@@ -71,7 +73,9 @@ public class TestMetamodel extends Singl
                OneOneChild.class,
                Book.class,
                Library.class,
-               Page.class);
+               Page.class,
+               Address.class,
+               Geocode.class);
        emf.createEntityManager();
         model = (MetamodelImpl)emf.getMetamodel();
         }
@@ -313,6 +317,12 @@ public class TestMetamodel extends Singl
         assertEquals(PersistentAttributeType.BASIC, 
pInt.getPersistentAttributeType());
     }
     
+    public void testEmbeddedAttributeType() {
+        ManagedType<Address> type = model.entity(Address.class);
+        Attribute.PersistentAttributeType attr = 
type.getAttribute("geocode").getPersistentAttributeType();
+        assertEquals(PersistentAttributeType.EMBEDDED, attr);
+    }
+    
     public void testNotFoundErrorMessage() {
         IdentifiableType<ImplicitFieldAccessBase> e0 = 
model.entity(ImplicitFieldAccessBase.class);
         String name = "unknown";

Modified: 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/Members.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/Members.java?rev=932663&r1=932662&r2=932663&view=diff
==============================================================================
--- 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/Members.java
 (original)
+++ 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/Members.java
 Sat Apr 10 02:32:07 2010
@@ -200,6 +200,10 @@ public class Members {
         public final PersistentAttributeType getPersistentAttributeType() {
             if (!fmd.isDeclaredTypePC())
                 return super.getPersistentAttributeType();
+            if (fmd.getValue().isEmbedded() && fmd.getAssociationType() == 0) {
+                return PersistentAttributeType.EMBEDDED;
+            }
+            
             return fmd.getMappedByMetaData() == null || 
!fmd.getType().isAssignableFrom(Collection.class)
                  ? PersistentAttributeType.ONE_TO_ONE
                  : PersistentAttributeType.ONE_TO_MANY;


Reply via email to