diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 79ef7d295..2a0ea3aba 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -1401,15 +1401,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { String primaryKeyColumn = desc.getSinglePrimaryKeyColumn(); seqName = namingConvention.getSequenceName(desc.getBaseTable(), primaryKeyColumn); } - - if (databasePlatform.isSequenceBatchMode()) { - // use sequence next step 1 as we are going to batch fetch them instead - desc.setIdentitySequenceBatchMode(); - } - int stepSize = identityMode.getIncrement(); - if (stepSize == 0) { - stepSize = 50; - } + int stepSize = desc.setIdentitySequenceBatchMode(databasePlatform.isSequenceBatchMode()); desc.setIdGenerator(createSequenceIdGenerator(seqName, stepSize)); } } diff --git a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java index 3ac8f72dc..cd5fabcd0 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java +++ b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java @@ -408,10 +408,10 @@ public class DeployBeanDescriptor { } /** - * Set use of Ebean side sequence batching. + * Return the sequence increment to use given sequence batch mode. */ - public void setIdentitySequenceBatchMode() { - identityMode.setSequenceBatchMode(); + public int setIdentitySequenceBatchMode(boolean sequenceBatchMode) { + return identityMode.setSequenceBatchMode(sequenceBatchMode); } public void setIdentityType(IdType type) { diff --git a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployIdentityMode.java b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployIdentityMode.java index 25172fceb..5915dc873 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployIdentityMode.java +++ b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployIdentityMode.java @@ -54,8 +54,15 @@ public class DeployIdentityMode { } } - public void setSequenceBatchMode() { - this.increment = 1; + public int setSequenceBatchMode(boolean sequenceBatchMode) { + if (sequenceBatchMode) { + // Ebean batch fetching multiple sequence values + increment = 1; + } else if (increment == 0) { + // Use JPA default of 50 + increment = 50; + } + return increment; } public void setIdType(IdType type) { diff --git a/src/test/java/org/tests/model/aggregation/TestAggregationTopLevel.java b/src/test/java/org/tests/model/aggregation/TestAggregationTopLevel.java index 4246ef71b..20ca94c22 100644 --- a/src/test/java/org/tests/model/aggregation/TestAggregationTopLevel.java +++ b/src/test/java/org/tests/model/aggregation/TestAggregationTopLevel.java @@ -53,7 +53,7 @@ public class TestAggregationTopLevel extends BaseTestCase { assertSql(sql.get(0)).contains("select count(*) from ( select t0.edate, sum(t0.total_kms) from d_machine_stats t0 group by t0.edate having sum(t0.total_kms) > ?)"); assertSql(sql.get(1)).contains("select t0.edate, sum(t0.total_kms) from d_machine_stats t0 group by t0.edate having sum(t0.total_kms) > ? limit 10"); } else if (isSqlServer()) { - assertSql(sql.get(0)).contains("select count(*) from ( select t0.edate c0, sum(t0.total_kms) c1 from d_machine_stats t0 group by t0.edate having sum(t0.total_kms) > ?) as c"); + assertSql(sql.get(0)).contains("select count(*) from ( select t0.edate, sum(t0.total_kms) from d_machine_stats t0 group by t0.edate having sum(t0.total_kms) > ?) as c"); } } diff --git a/src/test/java/org/tests/query/finder/TestCustomerFinder.java b/src/test/java/org/tests/query/finder/TestCustomerFinder.java index c1d323164..48cc264c6 100644 --- a/src/test/java/org/tests/query/finder/TestCustomerFinder.java +++ b/src/test/java/org/tests/query/finder/TestCustomerFinder.java @@ -229,7 +229,7 @@ public class TestCustomerFinder extends BaseTestCase { assertThat(metricsJson).contains("\"name\":\"txn.main\""); assertThat(metricsJson).contains("\"name\":\"orm.Customer.findList\""); assertThat(metricsJson).contains("\"loc\":\"CustomerFinder.byNameStatus(CustomerFinder.java:44)\""); - if (!isOracle()) { + if (isH2() || isPostgres()) { assertThat(metricsJson).contains("\"hash\":\"cc20eb930403cfd418db2d0475c6e26a\""); assertThat(metricsJson).contains("\"sql\":\"select t0.id, t0.status,"); }