001package com.avaje.ebean.config.dbplatform; 002 003import javax.sql.DataSource; 004 005import com.avaje.ebean.BackgroundExecutor; 006 007/** 008 * Oracle specific sequence Id Generator. 009 */ 010public class OracleSequenceIdGenerator extends SequenceIdGenerator { 011 012 private final String baseSql; 013 014 /** 015 * Construct given a dataSource and sql to return the next sequence value. 016 */ 017 public OracleSequenceIdGenerator(BackgroundExecutor be, DataSource ds, String seqName, 018 int batchSize) { 019 super(be, ds, seqName, batchSize); 020 this.baseSql = "select " + seqName 021 + ".nextval, a from (select level as a FROM dual CONNECT BY level <= "; 022 } 023 024 public String getSql(int batchSize) { 025 return baseSql + batchSize + ")"; 026 } 027}