public void testMoveSpecifiedJoinColumn() 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(); collectionTable.addSpecifiedJoinColumn(0).setSpecifiedName("FOO"); collectionTable.addSpecifiedJoinColumn(1).setSpecifiedName("BAR"); collectionTable.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ"); CollectionTableAnnotation2_0 joinTableResource = (CollectionTableAnnotation2_0) resourceField.getAnnotation(CollectionTableAnnotation2_0.ANNOTATION_NAME); assertEquals(3, joinTableResource.getJoinColumnsSize()); collectionTable.moveSpecifiedJoinColumn(2, 0); ListIterator<JavaSpecifiedJoinColumn> joinColumns = collectionTable.getSpecifiedJoinColumns().iterator(); assertEquals("BAR", joinColumns.next().getName()); assertEquals("BAZ", joinColumns.next().getName()); assertEquals("FOO", joinColumns.next().getName()); assertEquals("BAR", joinTableResource.joinColumnAt(0).getName()); assertEquals("BAZ", joinTableResource.joinColumnAt(1).getName()); assertEquals("FOO", joinTableResource.joinColumnAt(2).getName()); collectionTable.moveSpecifiedJoinColumn(0, 1); joinColumns = collectionTable.getSpecifiedJoinColumns().iterator(); assertEquals("BAZ", joinColumns.next().getName()); assertEquals("BAR", joinColumns.next().getName()); assertEquals("FOO", joinColumns.next().getName()); assertEquals("BAZ", joinTableResource.joinColumnAt(0).getName()); assertEquals("BAR", joinTableResource.joinColumnAt(1).getName()); assertEquals("FOO", joinTableResource.joinColumnAt(2).getName()); }