From 4d122ea05be13b6f960262525cec89ada54dd90d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 22 Feb 2018 22:09:53 +1300 Subject: [PATCH] #1267 - DDL issue on @OneToMany @JoinTable ... extra unnecessary index created on fk column --- .../java/io/ebeaninternal/dbmigration/model/MTable.java | 8 ++++++++ .../model/build/ModelBuildPropertyVisitor.java | 1 + 2 files changed, 9 insertions(+) diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java b/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java index 7e02a0e03..a92408496 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java +++ b/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java @@ -656,4 +656,12 @@ public class MTable { return draftTableName + "." + references.substring(lastDot + 1); } + /** + * Clear the indexes on the foreign keys as they are covered by unique constraints. + */ + public void clearForeignKeyIndexes() { + for (MCompoundForeignKey compoundKey : compoundKeys) { + compoundKey.setIndexName(null); + } + } } diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java b/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java index 8d9f64be5..f6a939d1a 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java +++ b/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java @@ -133,6 +133,7 @@ public class ModelBuildPropertyVisitor extends BaseTablePropertyVisitor { // in the middle of rendering the create table DDL MTable intersectionTable = new ModelBuildIntersectionTable(ctx, p).build(); if (p.isO2mJoinTable()) { + intersectionTable.clearForeignKeyIndexes(); Collection cols = intersectionTable.allColumns(); if (cols.size() == 2) { // always the second column that we put the unique constraint on