H2Dialect.java

  1. package com.github.mygreen.sqlmapper.core.dialect;

  2. import javax.sql.DataSource;

  3. import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;

  4. import com.github.mygreen.sqlmapper.core.annotation.GeneratedValue.GenerationType;
  5. import com.github.mygreen.sqlmapper.core.id.CustomH2SequenceMaxValueIncrementer;

  6. /**
  7.  * H2用の方言の定義。
  8.  *
  9.  *
  10.  * @author T.TSUCHIE
  11.  *
  12.  */
  13. public class H2Dialect extends DialectBase {

  14.     /**
  15.      * {@inheritDoc}
  16.      *
  17.      * @return {@literal "h2"} を返します。
  18.      */
  19.     @Override
  20.     public String getName() {
  21.         return "h2";
  22.     }

  23.     /**
  24.      * {@inheritDoc}
  25.      *
  26.      * @return
  27.      * <ul>
  28.      *  <li>{@link GenerationType#IDENTITY} : {@literal true}</li>
  29.      *  <li>{@link GenerationType#SEQUENCE} : {@literal true}</li>
  30.      *  <li>{@link GenerationType#TABLE} : {@literal true}</li>
  31.      *  <li>{@link GenerationType#UUID} : {@literal true}</li>
  32.      * </ul>
  33.      */
  34.     @Override
  35.     public boolean supportsGenerationType(GenerationType generationType) {
  36.         switch(generationType) {
  37.             case IDENTITY:
  38.                 return true;
  39.             case SEQUENCE:
  40.                 return true;
  41.             case TABLE:
  42.                 return true;
  43.             case UUID:
  44.                 return true;
  45.             default:
  46.                 return false;
  47.         }
  48.     }

  49.     /**
  50.      * {@inheritDoc}
  51.      *
  52.      * @return {@link CustomH2SequenceMaxValueIncrementer} のインスタンスを返します。
  53.      */
  54.     @Override
  55.     public DataFieldMaxValueIncrementer getSequenceIncrementer(DataSource dataSource, String sequenceName) {
  56. //        return new H2SequenceMaxValueIncrementer(dataSource, sequenceName);
  57.         return new CustomH2SequenceMaxValueIncrementer(dataSource, sequenceName);

  58.     }

  59. }