001package com.avaje.ebean.config.dbplatform; 002 003import javax.sql.DataSource; 004 005import com.avaje.ebean.BackgroundExecutor; 006 007/** 008 * Postgres specific sequence Id Generator. 009 */ 010public class PostgresSequenceIdGenerator 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 PostgresSequenceIdGenerator(BackgroundExecutor be, DataSource ds, String seqName, 018 int batchSize) { 019 super(be, ds, seqName, batchSize); 020 this.baseSql = "select nextval('" + seqName + "'), s.generate_series from (" 021 + "select generate_series from generate_series(1,"; 022 } 023 024 public String getSql(int batchSize) { 025 return baseSql + batchSize + ") ) as s"; 026 } 027}