mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2695 - DDL Generation for @UniqueConstraint ignores the name - should be the index name when given
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user