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}