コード例 #1
0
ファイル: MetamodelImpl.java プロジェクト: krossell/BatooJPA
  /**
   * Prefills the id generators.
   *
   * @param datasource the datasource to use
   * @since $version
   * @author hceylan
   */
  public void preFillGenerators(DataSource datasource) {
    final int nThreads = Runtime.getRuntime().availableProcessors();

    this.idGeneratorExecuter =
        new ThreadPoolExecutor(
            1,
            nThreads, //
            30,
            TimeUnit.SECONDS, //
            new LinkedBlockingQueue<Runnable>(), //
            new GeneratorThreadFactory());

    for (final SequenceGenerator generator : this.sequenceGenerators.values()) {
      this.sequenceQueues.put(
          generator.getName(),
          new SequenceQueue(
              this.jdbcAdaptor,
              datasource,
              this.idGeneratorExecuter,
              generator.getSequenceName(),
              generator.getAllocationSize()));
    }

    for (final TableGenerator generator : this.tableGenerators.values()) {
      this.tableIdQueues.put(
          generator.getName(),
          new TableIdQueue(this.jdbcAdaptor, datasource, this.idGeneratorExecuter, generator));
    }
  }
コード例 #2
0
ファイル: MetamodelImpl.java プロジェクト: krossell/BatooJPA
  /**
   * Performs the table generator DDL operations.
   *
   * @param datasource the datasource
   * @param ddlMode the DDL Mode
   * @since $version
   * @author hceylan
   */
  public void performTableGeneratorsDdl(DataSource datasource, DDLMode ddlMode) {
    for (final TableGenerator tableGenerator : this.tableGenerators.values()) {
      MetamodelImpl.LOG.info(
          "Performing DDL operations for sequence generators for mode table {1}, mode {0}",
          tableGenerator.getName(), ddlMode);

      this.jdbcAdaptor.createTableGeneratorIfNecessary(datasource, tableGenerator);
    }
  }
コード例 #3
0
ファイル: MetamodelImpl.java プロジェクト: krossell/BatooJPA
  /**
   * Adds the sequence generator to the metamodel
   *
   * @param metadata the generator metadata
   * @since $version
   * @author hceylan
   */
  public synchronized void addTableGenerator(TableGeneratorMetadata metadata) {
    final TableGenerator tableGenerator = new TableGenerator(metadata);

    this.tableGenerators.put(tableGenerator.getName(), tableGenerator);
  }