Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2010-06-24 18:54:20 +0000
committerkmoore2010-06-24 18:54:20 +0000
commite6d5ce3503391753eff446be0d4d2748507031a9 (patch)
tree3db2ad0cc93de6177af353e7c272042fba526393 /jpa/tests/org.eclipse.jpt.core.tests
parent3b916f1f1e82a0ff464d037bb27329fa0eb8d0cd (diff)
downloadwebtools.dali-e6d5ce3503391753eff446be0d4d2748507031a9.tar.gz
webtools.dali-e6d5ce3503391753eff446be0d4d2748507031a9.tar.xz
webtools.dali-e6d5ce3503391753eff446be0d4d2748507031a9.zip
312905 - fixing some incorrect defaults on virtual ORM attribute mappings
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.core.tests')
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java89
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java88
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java91
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java95
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java93
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java114
7 files changed, 565 insertions, 7 deletions
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
index 607ec62623..cc390402dd 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
+++ b/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.eclipse.jpt.core.tests;singleton:=true
-Bundle-Version: 2.3.0.qualifier
+Bundle-Version: 2.3.1.qualifier
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)",
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java
index d9a17740cf..90035a7301 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java
@@ -15,6 +15,7 @@ import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.BasicMapping;
+import org.eclipse.jpt.core.context.Cascade;
import org.eclipse.jpt.core.context.EmbeddedIdMapping;
import org.eclipse.jpt.core.context.EmbeddedMapping;
import org.eclipse.jpt.core.context.FetchType;
@@ -220,8 +221,32 @@ public class OrmManyToManyMappingTests extends ContextModelTestCase
};
this.javaProject.createCompilationUnit(PACKAGE_NAME, "State.java", sourceWriter);
}
-
-
+
+ private ICompilationUnit createTestEntityManyToManyMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.FETCH_TYPE, JPA.CASCADE_TYPE, JPA.ORDER_BY);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @ManyToMany(fetch=FetchType.EAGER, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH})");
+ sb.append(CR);
+ sb.append(" @OrderBy(\"city\"");
+ sb.append(CR);
+ sb.append(" private java.util.Collection<Address> address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -977,4 +1002,64 @@ public class OrmManyToManyMappingTests extends ContextModelTestCase
mapKeyNames = ormManyToManyMapping.candidateMapKeyNames();
assertEquals(false, mapKeyNames.hasNext());
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityManyToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToManyMapping.getName());
+ assertEquals(FetchType.EAGER, ormManyToManyMapping.getSpecifiedFetch());
+ assertEquals("Address", ormManyToManyMapping.getSpecifiedTargetEntity());
+ assertNull(ormManyToManyMapping.getRelationshipReference().
+ getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade cascade = ormManyToManyMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+
+ assertTrue(ormManyToManyMapping.getOrderable().isCustomOrdering());
+ assertEquals("city", ormManyToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityManyToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToManyMapping.getName());
+ assertEquals(FetchType.LAZY, ormManyToManyMapping.getFetch());
+ assertEquals("test.Address", ormManyToManyMapping.getTargetEntity());
+ assertNull(ormManyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade cascade = ormManyToManyMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+
+ assertTrue(ormManyToManyMapping.getOrderable().isNoOrdering());
+ assertEquals(null, ormManyToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
} \ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java
index 71d53188f4..da871ebced 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java
@@ -15,6 +15,7 @@ import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.BasicMapping;
+import org.eclipse.jpt.core.context.Cascade;
import org.eclipse.jpt.core.context.EmbeddedIdMapping;
import org.eclipse.jpt.core.context.EmbeddedMapping;
import org.eclipse.jpt.core.context.FetchType;
@@ -195,7 +196,32 @@ public class OrmOneToManyMappingTests extends ContextModelTestCase
};
this.javaProject.createCompilationUnit(PACKAGE_NAME, "State.java", sourceWriter);
}
-
+
+ private ICompilationUnit createTestEntityOneToManyMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.FETCH_TYPE, JPA.CASCADE_TYPE, JPA.ORDER_BY);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToMany(fetch=FetchType.EAGER, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH})");
+ sb.append(CR);
+ sb.append(" @OrderBy(\"city\"");
+ sb.append(CR);
+ sb.append(" private java.util.Collection<Address> address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -970,4 +996,64 @@ public class OrmOneToManyMappingTests extends ContextModelTestCase
mapKeyNames = ormOneToManyMapping.candidateMapKeyNames();
assertEquals(false, mapKeyNames.hasNext());
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityOneToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToManyMapping.getName());
+ assertEquals(FetchType.EAGER, ormOneToManyMapping.getSpecifiedFetch());
+ assertEquals("Address", ormOneToManyMapping.getSpecifiedTargetEntity());
+ assertNull(ormOneToManyMapping.getRelationshipReference().
+ getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade cascade = ormOneToManyMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+
+ assertTrue(ormOneToManyMapping.getOrderable().isCustomOrdering());
+ assertEquals("city", ormOneToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityOneToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToManyMapping.getName());
+ assertEquals(FetchType.LAZY, ormOneToManyMapping.getFetch());
+ assertEquals("test.Address", ormOneToManyMapping.getTargetEntity());
+ assertNull(ormOneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade cascade = ormOneToManyMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+
+ assertTrue(ormOneToManyMapping.getOrderable().isNoOrdering());
+ assertEquals(null, ormOneToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
} \ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java
index ae4d96a26e..050ac87737 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java
@@ -16,6 +16,7 @@ import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.Column;
import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.ManyToManyMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
@@ -23,6 +24,7 @@ import org.eclipse.jpt.core.context.orm.OrmEntity;
import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.Cascade2_0;
import org.eclipse.jpt.core.jpa2.context.OrderColumn2_0;
import org.eclipse.jpt.core.jpa2.context.Orderable2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToManyMapping2_0;
@@ -202,7 +204,32 @@ public class GenericOrmManyToManyMapping2_0Tests
};
this.javaProject.createCompilationUnit(PACKAGE_NAME, "State.java", sourceWriter);
}
-
+
+ private ICompilationUnit createTestEntityManyToManyMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.FETCH_TYPE, JPA.CASCADE_TYPE, JPA.ORDER_BY);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @ManyToMany(fetch=FetchType.EAGER, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH})");
+ sb.append(CR);
+ sb.append(" @OrderBy(\"city\"");
+ sb.append(CR);
+ sb.append(" private java.util.Collection<Address> address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
public void testCandidateMappedByAttributeNames() throws Exception {
createTestEntityWithValidManyToManyMapping();
createTestTargetEntityAddress();
@@ -846,4 +873,66 @@ public class GenericOrmManyToManyMapping2_0Tests
assertNull(ormColumn.getSpecifiedTable());
assertEquals("ORM_TABLE_Address", ormColumn.getDefaultTable());
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityManyToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToManyMapping.getName());
+ assertEquals(FetchType.EAGER, ormManyToManyMapping.getSpecifiedFetch());
+ assertEquals("Address", ormManyToManyMapping.getSpecifiedTargetEntity());
+ assertNull(ormManyToManyMapping.getRelationshipReference().
+ getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade2_0 cascade = ormManyToManyMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+ assertTrue(cascade.isDetach());
+
+ assertTrue(ormManyToManyMapping.getOrderable().isCustomOrdering());
+ assertEquals("city", ormManyToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityManyToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToManyMapping.getName());
+ assertEquals(FetchType.LAZY, ormManyToManyMapping.getFetch());
+ assertEquals("test.Address", ormManyToManyMapping.getTargetEntity());
+ assertNull(ormManyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade2_0 cascade = ormManyToManyMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+ assertFalse(cascade.isDetach());
+
+ assertTrue(ormManyToManyMapping.getOrderable().isNoOrdering());
+ assertEquals(null, ormManyToManyMapping.getOrderable().getSpecifiedOrderBy());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java
index bb9d5522bd..ebc5cc2b74 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java
@@ -13,14 +13,17 @@ package org.eclipse.jpt.core.tests.internal.jpa2.context.orm;
import java.util.Iterator;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.java.JavaEntity;
import org.eclipse.jpt.core.context.java.JavaJoinColumn;
import org.eclipse.jpt.core.context.java.JavaJoinTable;
import org.eclipse.jpt.core.context.orm.OrmEntity;
import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
import org.eclipse.jpt.core.context.orm.OrmJoinTable;
+import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.Cascade2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedIdentity2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmManyToOneMapping2_0;
@@ -174,7 +177,32 @@ public class GenericOrmManyToOneMapping2_0Tests
};
this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
}
-
+
+ private ICompilationUnit createTestEntityManyToOneMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, JPA.JOIN_COLUMN, JPA.FETCH_TYPE, JPA.CASCADE_TYPE);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @ManyToOne(fetch=FetchType.LAZY, optional=false, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH})");
+ sb.append(CR);
+ sb.append(" @JoinColumn(name=\"MY_COLUMN\", referencedColumnName=\"MY_REFERENCED_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\")");
+ sb.append(CR);
+ sb.append(" private Address address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
public void testUpdateId() throws Exception {
createTestEntityWithIdDerivedIdentity();
OrmPersistentType contextType = getEntityMappings().getPersistentType(FULLY_QUALIFIED_TYPE_NAME);
@@ -573,4 +601,69 @@ public class GenericOrmManyToOneMapping2_0Tests
assertFalse(relationshipReference.usesJoinColumnJoiningStrategy());
assertTrue(relationshipReference.usesJoinTableJoiningStrategy());
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityManyToOneMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToOneMapping.getName());
+ assertEquals(FetchType.LAZY, ormManyToOneMapping.getSpecifiedFetch());
+ assertEquals(Boolean.FALSE, ormManyToOneMapping.getSpecifiedOptional());
+ assertEquals("Address", ormManyToOneMapping.getSpecifiedTargetEntity());
+
+ OrmJoinColumn ormJoinColumn = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().next();
+ assertEquals("MY_COLUMN", ormJoinColumn.getSpecifiedName());
+ assertEquals("MY_REFERENCED_COLUMN", ormJoinColumn.getSpecifiedReferencedColumnName());
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
+ assertEquals("COLUMN_DEFINITION", ormJoinColumn.getColumnDefinition());
+ assertEquals("MY_TABLE", ormJoinColumn.getSpecifiedTable());
+
+ Cascade2_0 cascade = ormManyToOneMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+ assertTrue(cascade.isDetach());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityManyToOneMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormManyToOneMapping.getName());
+ assertEquals(FetchType.EAGER, ormManyToOneMapping.getDefaultFetch());
+ assertEquals(true, ormManyToOneMapping.isDefaultOptional());
+ assertEquals("test.Address", ormManyToOneMapping.getDefaultTargetEntity());
+
+ Cascade2_0 cascade = ormManyToOneMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+ assertFalse(cascade.isDetach());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
index 9e1e1edd01..a1f3df8364 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
@@ -15,6 +15,7 @@ import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.Column;
import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.JoinColumn;
import org.eclipse.jpt.core.context.OneToManyMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
@@ -24,6 +25,7 @@ import org.eclipse.jpt.core.context.orm.OrmEntity;
import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.Cascade2_0;
import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0;
import org.eclipse.jpt.core.jpa2.context.OrderColumn2_0;
import org.eclipse.jpt.core.jpa2.context.Orderable2_0;
@@ -238,6 +240,31 @@ public class GenericOrmOneToManyMapping2_0Tests
});
}
+ private ICompilationUnit createTestEntityOneToManyMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.FETCH_TYPE, JPA.CASCADE_TYPE, JPA.ORDER_BY);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToMany(fetch=FetchType.EAGER, targetEntity=Address.class, orphanRemoval = true, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH})");
+ sb.append(CR);
+ sb.append(" @OrderBy(\"city\"");
+ sb.append(CR);
+ sb.append(" private java.util.Collection<Address> address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
public void testCandidateMappedByAttributeNames() throws Exception {
createTestEntityWithValidOneToManyMapping();
createTestTargetEntityAddress();
@@ -1122,4 +1149,70 @@ public class GenericOrmOneToManyMapping2_0Tests
assertEquals("addresses_ORDER", orderColumn.getName());
assertEquals("ORM_ADDRESS_PRIMARY_TABLE", orderColumn.getTable());//target table name
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityOneToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToManyMapping.getName());
+ assertEquals(FetchType.EAGER, ormOneToManyMapping.getSpecifiedFetch());
+ assertEquals("Address", ormOneToManyMapping.getSpecifiedTargetEntity());
+ assertNull(ormOneToManyMapping.getRelationshipReference().
+ getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade2_0 cascade = ormOneToManyMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+ assertTrue(cascade.isDetach());
+
+ assertTrue(ormOneToManyMapping.getOrderable().isCustomOrdering());
+ assertEquals("city", ormOneToManyMapping.getOrderable().getSpecifiedOrderBy());
+
+ assertTrue(((OrmOrphanRemovalHolder2_0) ormOneToManyMapping).getOrphanRemoval().isOrphanRemoval());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityOneToManyMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToManyMapping.getName());
+ assertEquals(FetchType.LAZY, ormOneToManyMapping.getFetch());
+ assertEquals("test.Address", ormOneToManyMapping.getTargetEntity());
+ assertNull(ormOneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
+
+ Cascade2_0 cascade = ormOneToManyMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+ assertFalse(cascade.isDetach());
+
+ assertTrue(ormOneToManyMapping.getOrderable().isNoOrdering());
+ assertEquals(null, ormOneToManyMapping.getOrderable().getSpecifiedOrderBy());
+
+ assertFalse(((OrmOrphanRemovalHolder2_0) ormOneToManyMapping).getOrphanRemoval().isOrphanRemoval());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
index 4535430ae8..71e839a07a 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
@@ -13,6 +13,7 @@ import java.util.Iterator;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
+import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.OneToOneMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaEntity;
@@ -23,6 +24,7 @@ import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
import org.eclipse.jpt.core.context.orm.OrmJoinTable;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.Cascade2_0;
import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedIdentity2_0;
@@ -238,7 +240,32 @@ public class GenericOrmOneToOneMapping2_0Tests
each.makeSpecified();
}
}
-
+
+ private ICompilationUnit createTestEntityOneToOneMapping() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, JPA.JOIN_COLUMN, JPA.FETCH_TYPE, JPA.CASCADE_TYPE);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToOne(fetch=FetchType.LAZY, optional=false, targetEntity=Address.class, orphanRemoval = true, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH})");
+ sb.append(CR);
+ sb.append(" @JoinColumn(name=\"MY_COLUMN\", referencedColumnName=\"MY_REFERENCED_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\")");
+ sb.append(CR);
+ sb.append(" private Address address;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
+
public void testUpdateId() throws Exception {
createTestEntityWithIdDerivedIdentity();
OrmPersistentType contextType = getEntityMappings().getPersistentType(FULLY_QUALIFIED_TYPE_NAME);
@@ -870,4 +897,89 @@ public class GenericOrmOneToOneMapping2_0Tests
assertFalse(relationshipReference.usesMappedByJoiningStrategy());
assertFalse(relationshipReference.usesJoinTableJoiningStrategy());
}
+
+ public void testVirtualMappingMetadataCompleteFalse() throws Exception {
+ createTestEntityOneToOneMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
+
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToOneMapping.getName());
+ assertEquals(FetchType.LAZY, ormOneToOneMapping.getSpecifiedFetch());
+ assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOptional());
+ assertEquals("Address", ormOneToOneMapping.getSpecifiedTargetEntity());
+ assertNull(ormOneToOneMapping.getRelationshipReference().
+ getMappedByJoiningStrategy().getMappedByAttribute());
+
+ OrmJoinColumn ormJoinColumn =
+ ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().next();
+ assertEquals("MY_COLUMN", ormJoinColumn.getSpecifiedName());
+ assertEquals("MY_REFERENCED_COLUMN", ormJoinColumn.getSpecifiedReferencedColumnName());
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
+ assertEquals("COLUMN_DEFINITION", ormJoinColumn.getColumnDefinition());
+ assertEquals("MY_TABLE", ormJoinColumn.getSpecifiedTable());
+
+ Cascade2_0 cascade = ormOneToOneMapping.getCascade();
+ assertTrue(cascade.isAll());
+ assertTrue(cascade.isMerge());
+ assertTrue(cascade.isPersist());
+ assertTrue(cascade.isRemove());
+ assertTrue(cascade.isRefresh());
+ assertTrue(cascade.isDetach());
+
+ assertTrue(((OrmOrphanRemovalHolder2_0) ormOneToOneMapping).getOrphanRemoval().isOrphanRemoval());
+ }
+
+ public void testVirtualMappingMetadataCompleteTrue() throws Exception {
+ createTestEntityOneToOneMapping();
+ createTestTargetEntityAddress();
+
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
+ ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
+ assertEquals(3, ormPersistentType.virtualAttributesSize());
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("address");
+
+ assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
+ assertTrue(ormPersistentAttribute.isVirtual());
+
+ ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
+ ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
+
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ assertEquals("address", ormOneToOneMapping.getName());
+ assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
+ assertEquals(true, ormOneToOneMapping.isOptional());
+ assertEquals("test.Address", ormOneToOneMapping.getTargetEntity());
+ assertNull(ormOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
+
+ //TODO default join columns in xml one-to-one
+// XmlJoinColumn ormJoinColumn = ormOneToOneMapping.specifiedJoinColumns().next();
+// //TODO java default columns name in JavaSingleRelationshipMapping.JoinColumnOwner
+// //assertEquals("address", ormJoinColumn.getSpecifiedName());
+// //assertEquals("address", ormJoinColumn.getSpecifiedReferencedColumnName());
+// assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
+// assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
+// assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
+// assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
+// assertNull(ormJoinColumn.getColumnDefinition());
+// assertEquals(TYPE_NAME, ormJoinColumn.getSpecifiedTable());
+
+ Cascade2_0 cascade = ormOneToOneMapping.getCascade();
+ assertFalse(cascade.isAll());
+ assertFalse(cascade.isMerge());
+ assertFalse(cascade.isPersist());
+ assertFalse(cascade.isRemove());
+ assertFalse(cascade.isRefresh());
+ assertFalse(cascade.isDetach());
+
+ assertFalse(((OrmOrphanRemovalHolder2_0) ormOneToOneMapping).getOrphanRemoval().isOrphanRemoval());
+ }
}

Back to the top