mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#999 - @DiscriminatorColumn columnDefinition is ignored for DDL generation
This commit is contained in:
@@ -5,6 +5,7 @@ import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import io.ebean.config.DbConstraintNaming;
|
||||
import io.ebean.dbmigration.ddlgeneration.platform.DefaultConstraintMaxLength;
|
||||
import io.ebean.dbmigration.model.MColumn;
|
||||
import io.ebean.dbmigration.model.MTable;
|
||||
import io.ebean.dbmigration.model.ModelContainer;
|
||||
import io.ebean.dbmigration.model.visitor.VisitAllUsing;
|
||||
@@ -31,12 +32,41 @@ public class ModelBuildBeanVisitorTest extends BaseTestCase {
|
||||
|
||||
new VisitAllUsing(addTable, defaultServer).visitAllBeans();
|
||||
|
||||
assert_compound_pk(model);
|
||||
|
||||
assert_discriminatorColumn_explicit(model);
|
||||
assert_discriminatorColumn_implied(model);
|
||||
assert_discriminatorColumn_length(model);
|
||||
}
|
||||
|
||||
private void assert_compound_pk(ModelContainer model) {
|
||||
MTable item = model.getTable("item");
|
||||
|
||||
assertThat(item).isNotNull();
|
||||
assertThat(item.primaryKeyColumns()).hasSize(2);
|
||||
}
|
||||
|
||||
MTable customer = model.getTable("o_customer");
|
||||
assertThat(customer).isNotNull();
|
||||
private void assert_discriminatorColumn_explicit(ModelContainer model) {
|
||||
|
||||
MTable configuration = model.getTable("configuration");
|
||||
MColumn discTypeColumn = configuration.getColumn("type");
|
||||
assertThat(discTypeColumn.getType()).isEqualTo("varchar(21)");
|
||||
assertThat(discTypeColumn.isNotnull()).isTrue();
|
||||
}
|
||||
|
||||
private void assert_discriminatorColumn_implied(ModelContainer model) {
|
||||
|
||||
MTable configuration = model.getTable("bar");
|
||||
MColumn discTypeColumn = configuration.getColumn("bar_type");
|
||||
assertThat(discTypeColumn.getType()).isEqualTo("varchar(31)");
|
||||
assertThat(discTypeColumn.isNotnull()).isTrue();
|
||||
}
|
||||
|
||||
private void assert_discriminatorColumn_length(ModelContainer model) {
|
||||
|
||||
MTable configuration = model.getTable("vehicle");
|
||||
MColumn discTypeColumn = configuration.getColumn("dtype");
|
||||
assertThat(discTypeColumn.getType()).isEqualTo("varchar(3)");
|
||||
assertThat(discTypeColumn.isNotnull()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,9 @@ import javax.persistence.*;
|
||||
@Entity
|
||||
@Cache(enableQueryCache = true)
|
||||
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
|
||||
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
|
||||
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING, columnDefinition = "varchar(21)")
|
||||
public class Configuration extends AbstractBaseClass {
|
||||
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
private Integer id;
|
||||
|
||||
Reference in New Issue
Block a user