mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-22 16:11:14 +00:00
Change OraclePlatform to default to use Identity (rather than sequence) (#1976)
* Change OraclePlatform to default to use Identity - Keep Oracle11Platform to default to Sequence - Refactor rename Oracle10Ddl to OracleDdl * Change OraclePlatform to default to use Identity - DDL review changes in src/test * Bump ebean-test-docker for StartOracle
This commit is contained in:
@@ -200,7 +200,7 @@
|
||||
<dependency>
|
||||
<groupId>io.ebean.test</groupId>
|
||||
<artifactId>ebean-test-docker</artifactId>
|
||||
<version>3.1.3</version>
|
||||
<version>3.1.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package io.ebean.config.dbplatform.oracle;
|
||||
|
||||
import io.ebean.annotation.Platform;
|
||||
import io.ebean.config.dbplatform.IdType;
|
||||
|
||||
/**
|
||||
* Oracle 11 platform using rownum sql limiting.
|
||||
@@ -12,5 +13,6 @@ public class Oracle11Platform extends OraclePlatform {
|
||||
this.platform = Platform.ORACLE11;
|
||||
this.columnAliasPrefix = "c";
|
||||
this.sqlLimiter = new OracleRownumSqlLimiter();
|
||||
dbIdentity.setIdType(IdType.SEQUENCE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class OraclePlatform extends DatabasePlatform {
|
||||
this.basicSqlLimiter = new BasicSqlAnsiLimiter();
|
||||
this.historySupport = new OracleDbHistorySupport();
|
||||
this.truncateTable = "truncate table %s cascade";
|
||||
dbIdentity.setIdType(IdType.SEQUENCE);
|
||||
dbIdentity.setIdType(IdType.IDENTITY);
|
||||
dbIdentity.setSupportsSequence(true);
|
||||
dbIdentity.setSupportsIdentity(true);
|
||||
dbIdentity.setSupportsGetGeneratedKeys(true);
|
||||
|
||||
+10
-2
@@ -6,9 +6,9 @@ import io.ebean.config.dbplatform.DatabasePlatform;
|
||||
/**
|
||||
* Oracle platform specific DDL.
|
||||
*/
|
||||
public class Oracle10Ddl extends PlatformDdl {
|
||||
public class OracleDdl extends PlatformDdl {
|
||||
|
||||
public Oracle10Ddl(DatabasePlatform platform) {
|
||||
public OracleDdl(DatabasePlatform platform) {
|
||||
super(platform);
|
||||
this.dropTableIfExists = "drop table ";
|
||||
this.dropSequenceIfExists = "drop sequence ";
|
||||
@@ -48,4 +48,12 @@ public class Oracle10Ddl extends PlatformDdl {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify and return the column definition for autoincrement or identity definition.
|
||||
*/
|
||||
@Override
|
||||
public String asIdentityColumn(String columnDefn, DdlIdentity identity) {
|
||||
return asIdentityStandardOptions(columnDefn, identity);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -195,7 +195,6 @@ public class PlatformDdl {
|
||||
* SQl2003 standard identity definition.
|
||||
*/
|
||||
protected String asIdentityStandardOptions(String columnDefn, DdlIdentity identity) {
|
||||
|
||||
StringBuilder sb = new StringBuilder(columnDefn.length() + 60);
|
||||
sb.append(columnDefn).append(identity.optionGenerated());
|
||||
sb.append(identity.identityOptions(identityStartWith, identityIncrementBy, identityCache));
|
||||
|
||||
@@ -9,7 +9,7 @@ import io.ebeaninternal.dbmigration.ddlgeneration.platform.HanaColumnStoreDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.HsqldbDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.MySqlDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.NuoDbDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.Oracle10Ddl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.OracleDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.Postgres9Ddl;
|
||||
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PostgresDdl;
|
||||
@@ -40,7 +40,7 @@ public class PlatformDdlBuilder {
|
||||
return new NuoDbDdl(platform);
|
||||
case ORACLE:
|
||||
case ORACLE11:
|
||||
return new Oracle10Ddl(platform);
|
||||
return new OracleDdl(platform);
|
||||
case SQLITE:
|
||||
return new SQLiteDdl(platform);
|
||||
case POSTGRES9:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -6,16 +6,16 @@ import org.junit.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class Oracle10DdlTest {
|
||||
public class OracleDdlTest {
|
||||
|
||||
Oracle10Ddl create() {
|
||||
return new Oracle10Ddl(new OraclePlatform());
|
||||
OracleDdl create() {
|
||||
return new OracleDdl(new OraclePlatform());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void appendForeignKeyOnDelete_expectEmtpy_when_nullRestrictSetDefault() {
|
||||
|
||||
Oracle10Ddl oracle = create();
|
||||
OracleDdl oracle = create();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
oracle.appendForeignKeyOnDelete(sb, oracle.withDefault(null));
|
||||
@@ -34,7 +34,7 @@ public class Oracle10DdlTest {
|
||||
@Test
|
||||
public void appendForeignKeyOnDelete_setNull() {
|
||||
|
||||
Oracle10Ddl oracle = create();
|
||||
OracleDdl oracle = create();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.SET_NULL);
|
||||
@@ -44,7 +44,7 @@ public class Oracle10DdlTest {
|
||||
@Test
|
||||
public void appendForeignKeyOnDelete_cascade() {
|
||||
|
||||
Oracle10Ddl oracle = create();
|
||||
OracleDdl oracle = create();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
oracle.appendForeignKeyOnDelete(sb, ConstraintMode.CASCADE);
|
||||
+1
-1
@@ -267,7 +267,7 @@ public class PlatformDdl_AlterColumnTest {
|
||||
@Test
|
||||
public void useIdentityType_oracle() {
|
||||
|
||||
assertEquals(oraDdl.useIdentityType(null), IdType.SEQUENCE);
|
||||
assertEquals(oraDdl.useIdentityType(null), IdType.IDENTITY);
|
||||
assertEquals(oraDdl.useIdentityType(IdType.SEQUENCE), IdType.SEQUENCE);
|
||||
assertEquals(oraDdl.useIdentityType(IdType.IDENTITY), IdType.IDENTITY);
|
||||
assertEquals(oraDdl.useIdentityType(IdType.GENERATOR), IdType.GENERATOR);
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- apply changes
|
||||
create table migtest_ckey_assoc (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
assoc_one varchar2(255),
|
||||
constraint pk_migtest_ckey_assoc primary key (id)
|
||||
);
|
||||
create sequence migtest_ckey_assoc_seq;
|
||||
|
||||
create table migtest_ckey_detail (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
something varchar2(255),
|
||||
constraint pk_migtest_ckey_detail primary key (id)
|
||||
);
|
||||
create sequence migtest_ckey_detail_seq;
|
||||
|
||||
create table migtest_ckey_parent (
|
||||
one_key number(10) not null,
|
||||
@@ -23,47 +21,41 @@ create table migtest_ckey_parent (
|
||||
);
|
||||
|
||||
create table migtest_fk_cascade (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
one_id number(19),
|
||||
constraint pk_migtest_fk_cascade primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_cascade_seq;
|
||||
|
||||
create table migtest_fk_cascade_one (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
constraint pk_migtest_fk_cascade_one primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_cascade_one_seq;
|
||||
|
||||
create table migtest_fk_none (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
one_id number(19),
|
||||
constraint pk_migtest_fk_none primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_none_seq;
|
||||
|
||||
create table migtest_fk_none_via_join (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
one_id number(19),
|
||||
constraint pk_migtest_fk_none_via_join primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_none_via_join_seq;
|
||||
|
||||
create table migtest_fk_one (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
constraint pk_migtest_fk_one primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_one_seq;
|
||||
|
||||
create table migtest_fk_set_null (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
one_id number(19),
|
||||
constraint pk_migtest_fk_set_null primary key (id)
|
||||
);
|
||||
create sequence migtest_fk_set_null_seq;
|
||||
|
||||
create table migtest_e_basic (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
status varchar2(1),
|
||||
status2 varchar2(1) default 'N' not null,
|
||||
name varchar2(127),
|
||||
@@ -85,103 +77,89 @@ create table migtest_e_basic (
|
||||
constraint uq_migtest_e_basic_indextest6 unique (indextest6),
|
||||
constraint pk_migtest_e_basic primary key (id)
|
||||
);
|
||||
create sequence migtest_e_basic_seq;
|
||||
|
||||
create table migtest_e_enum (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_status varchar2(1),
|
||||
constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
|
||||
constraint pk_migtest_e_enum primary key (id)
|
||||
);
|
||||
create sequence migtest_e_enum_seq;
|
||||
|
||||
create table migtest_e_history (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_string varchar2(255),
|
||||
constraint pk_migtest_e_history primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history_seq;
|
||||
|
||||
create table migtest_e_history2 (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_string varchar2(255),
|
||||
obsolete_string1 varchar2(255),
|
||||
obsolete_string2 varchar2(255),
|
||||
constraint pk_migtest_e_history2 primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history2_seq;
|
||||
|
||||
create table migtest_e_history3 (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_string varchar2(255),
|
||||
constraint pk_migtest_e_history3 primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history3_seq;
|
||||
|
||||
create table migtest_e_history4 (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_number number(10),
|
||||
constraint pk_migtest_e_history4 primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history4_seq;
|
||||
|
||||
create table migtest_e_history5 (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_number number(10),
|
||||
constraint pk_migtest_e_history5 primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history5_seq;
|
||||
|
||||
create table migtest_e_history6 (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_number1 number(10),
|
||||
test_number2 number(10) not null,
|
||||
constraint pk_migtest_e_history6 primary key (id)
|
||||
);
|
||||
create sequence migtest_e_history6_seq;
|
||||
|
||||
create table migtest_e_ref (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
name varchar2(127) not null,
|
||||
constraint uq_migtest_e_ref_name unique (name),
|
||||
constraint pk_migtest_e_ref primary key (id)
|
||||
);
|
||||
create sequence migtest_e_ref_seq;
|
||||
|
||||
create table migtest_e_softdelete (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
test_string varchar2(255),
|
||||
constraint pk_migtest_e_softdelete primary key (id)
|
||||
);
|
||||
create sequence migtest_e_softdelete_seq;
|
||||
|
||||
create table migtest_mtm_c (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
name varchar2(255),
|
||||
constraint pk_migtest_mtm_c primary key (id)
|
||||
);
|
||||
create sequence migtest_mtm_c_seq;
|
||||
|
||||
create table migtest_mtm_m (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
name varchar2(255),
|
||||
constraint pk_migtest_mtm_m primary key (id)
|
||||
);
|
||||
create sequence migtest_mtm_m_seq;
|
||||
|
||||
create table migtest_oto_child (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
name varchar2(255),
|
||||
constraint pk_migtest_oto_child primary key (id)
|
||||
);
|
||||
create sequence migtest_oto_child_seq;
|
||||
|
||||
create table migtest_oto_master (
|
||||
id number(19) not null,
|
||||
id number(19) generated by default as identity not null,
|
||||
name varchar2(255),
|
||||
constraint pk_migtest_oto_master primary key (id)
|
||||
);
|
||||
create sequence migtest_oto_master_seq;
|
||||
|
||||
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
|
||||
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- apply changes
|
||||
create table migtest_e_user (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
constraint pk_migtest_e_user primary key (id)
|
||||
);
|
||||
create sequence migtest_e_user_seq;
|
||||
|
||||
create table migtest_mtm_c_migtest_mtm_m (
|
||||
migtest_mtm_c_id number(10) not null,
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- apply changes
|
||||
create table migtest_e_ref (
|
||||
id number(10) not null,
|
||||
id number(10) generated by default as identity not null,
|
||||
name varchar2(127) not null,
|
||||
constraint uq_migtest_e_ref_name unique (name),
|
||||
constraint pk_migtest_e_ref primary key (id)
|
||||
);
|
||||
create sequence migtest_e_ref_seq;
|
||||
|
||||
alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent;
|
||||
alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id;
|
||||
|
||||
Reference in New Issue
Block a user