public void testAddSpecifiedJoinColumn() throws Exception { createTestEntityWithElementCollection(); addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); JavaElementCollectionMapping2_0 elementCollectionMapping = (JavaElementCollectionMapping2_0) getJavaPersistentType().getAttributes().iterator().next().getMapping(); JavaCollectionTable2_0 collectionTable = elementCollectionMapping.getCollectionTable(); JavaResourceType resourceType = (JavaResourceType) getJpaProject().getJavaResourceType(FULLY_QUALIFIED_TYPE_NAME, AstNodeType.TYPE); JavaResourceField resourceField = resourceType.getFields().iterator().next(); SpecifiedJoinColumn joinColumn = collectionTable.addSpecifiedJoinColumn(0); joinColumn.setSpecifiedName("FOO"); CollectionTableAnnotation2_0 joinTableResource = (CollectionTableAnnotation2_0) resourceField.getAnnotation(CollectionTableAnnotation2_0.ANNOTATION_NAME); assertEquals("FOO", joinTableResource.joinColumnAt(0).getName()); SpecifiedJoinColumn joinColumn2 = collectionTable.addSpecifiedJoinColumn(0); joinColumn2.setSpecifiedName("BAR"); assertEquals("BAR", joinTableResource.joinColumnAt(0).getName()); assertEquals("FOO", joinTableResource.joinColumnAt(1).getName()); SpecifiedJoinColumn joinColumn3 = collectionTable.addSpecifiedJoinColumn(1); joinColumn3.setSpecifiedName("BAZ"); assertEquals("BAR", joinTableResource.joinColumnAt(0).getName()); assertEquals("BAZ", joinTableResource.joinColumnAt(1).getName()); assertEquals("FOO", joinTableResource.joinColumnAt(2).getName()); ListIterator<JavaSpecifiedJoinColumn> joinColumns = collectionTable.getSpecifiedJoinColumns().iterator(); assertEquals(joinColumn2, joinColumns.next()); assertEquals(joinColumn3, joinColumns.next()); assertEquals(joinColumn, joinColumns.next()); joinColumns = collectionTable.getSpecifiedJoinColumns().iterator(); assertEquals("BAR", joinColumns.next().getName()); assertEquals("BAZ", joinColumns.next().getName()); assertEquals("FOO", joinColumns.next().getName()); }