diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/IndexDefinition.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/IndexDefinition.java index 032452574..c87947386 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/IndexDefinition.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/IndexDefinition.java @@ -29,10 +29,10 @@ public final class IndexDefinition { /** * Create a unique constraint given the column names. */ - public IndexDefinition(String[] columns) { + public IndexDefinition(String name, String[] columns) { this.columns = columns; this.unique = true; - this.name = null; + this.name = name; this.platforms = null; this.concurrent = false; this.definition = null; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java index 8ca3058bd..956fa66c7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java @@ -135,7 +135,7 @@ final class AnnotationClass extends AnnotationParser { UniqueConstraint uc = typeGet(cls, UniqueConstraint.class); if (uc != null) { - descriptor.addIndex(new IndexDefinition(convertColumnNames(uc.columnNames()))); + descriptor.addIndex(new IndexDefinition(uc.name(), convertColumnNames(uc.columnNames()))); } View view = typeGet(cls, View.class); if (view != null) { @@ -145,7 +145,7 @@ final class AnnotationClass extends AnnotationParser { if (table != null) { UniqueConstraint[] uniqueConstraints = table.uniqueConstraints(); for (UniqueConstraint c : uniqueConstraints) { - descriptor.addIndex(new IndexDefinition(convertColumnNames(c.columnNames()))); + descriptor.addIndex(new IndexDefinition(c.name(), convertColumnNames(c.columnNames()))); } } StorageEngine storage = typeGet(cls, StorageEngine.class); diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/deploy/IndexDefinitionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/IndexDefinitionTest.java index fc8763c61..b6562ffd2 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/deploy/IndexDefinitionTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/IndexDefinitionTest.java @@ -1,12 +1,11 @@ package io.ebeaninternal.server.deploy; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class IndexDefinitionTest { +class IndexDefinitionTest { private static final String[] simpleCol1 = new String[]{"one"}; private static final String[] simpleCol2 = new String[]{"one","two"}; @@ -14,29 +13,29 @@ public class IndexDefinitionTest { private static final String[] formulaCol2 = new String[]{"one","lower(two)"}; @Test - public void isUniqueConstraint_TRUE_when_simpleMultiColumn() { - Assertions.assertTrue(new IndexDefinition(simpleCol1).isUniqueConstraint()); - assertTrue(new IndexDefinition(simpleCol2).isUniqueConstraint()); + void isUniqueConstraint_TRUE_when_simpleMultiColumn() { + assertTrue(new IndexDefinition("", simpleCol1).isUniqueConstraint()); + assertTrue(new IndexDefinition("", simpleCol2).isUniqueConstraint()); } @Test - public void isUniqueConstraint_NOT_when_columnWithFormula() { - assertFalse(new IndexDefinition(formulaCol1).isUniqueConstraint()); - assertFalse(new IndexDefinition(formulaCol2).isUniqueConstraint()); + void isUniqueConstraint_NOT_when_columnWithFormula() { + assertFalse(new IndexDefinition("", formulaCol1).isUniqueConstraint()); + assertFalse(new IndexDefinition("", formulaCol2).isUniqueConstraint()); } @Test - public void isUniqueConstraint_NOT_when_concurrentTrue() { + void isUniqueConstraint_NOT_when_concurrentTrue() { assertFalse(new IndexDefinition(simpleCol1, "name", true, null, true, null).isUniqueConstraint()); } @Test - public void isUniqueConstraint_NOT_when_definitionNotEmpty() { + void isUniqueConstraint_NOT_when_definitionNotEmpty() { assertFalse(new IndexDefinition(simpleCol1, "name", true, null, false, "create index foo").isUniqueConstraint()); } @Test - public void isUniqueConstraint_TRUE_otherwise() { + void isUniqueConstraint_TRUE_otherwise() { assertTrue(new IndexDefinition(simpleCol1, "name", true, null, false, "").isUniqueConstraint()); assertTrue(new IndexDefinition(simpleCol1, "name", true, null, false, null).isUniqueConstraint()); } diff --git a/ebean-test/src/test/java/org/tests/model/basic/cache/OCachedApp.java b/ebean-test/src/test/java/org/tests/model/basic/cache/OCachedApp.java index cdca746aa..4ee852d90 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/cache/OCachedApp.java +++ b/ebean-test/src/test/java/org/tests/model/basic/cache/OCachedApp.java @@ -7,7 +7,7 @@ import javax.persistence.UniqueConstraint; @Cache(naturalKey = "appName") @Entity -@UniqueConstraint(columnNames = "app_name") +@UniqueConstraint(name="uq_ocached_app", columnNames = "app_name") public class OCachedApp extends OCacheBase { private String appName;