モジュール org.nkjmlab.sorm4j

クラス TableDefinition

java.lang.Object
org.nkjmlab.sorm4j.util.table_def.TableDefinition

public final class TableDefinition extends Object
This class represent a table schema. This class is a utility for users to define tables and indexes. It should be noted that there is no guarantee that this object will match the table definition in the database.
作成者:
nkjm
  • メソッドの詳細

    • builder

      public static TableDefinition.Builder builder(String tableName)
      Creates a new TableDefinition.Builder with the given table name.
      戻り値:
    • builder

      public static TableDefinition.Builder builder(Class<?> valueType, String tableName)
    • builder

      public static TableDefinition.Builder builder(Class<?> valueType)
    • toTableName

      public static String toTableName(Class<?> valueType)
    • getCanonicalConstructor

      public static Optional<Constructor<?>> getCanonicalConstructor(Class<?> recordClass)
    • toString

      public String toString()
      オーバーライド:
      toString クラス内 Object
    • createIndexesIfNotExists

      public TableDefinition createIndexesIfNotExists(Orm orm)
    • createTableIfNotExists

      public TableDefinition createTableIfNotExists(Orm orm)
    • dropTableIfExists

      public TableDefinition dropTableIfExists(Orm orm)
    • dropTableIfExistsCascade

      public void dropTableIfExistsCascade(Orm orm)
    • getColumnNames

      public List<String> getColumnNames()
    • getCreateIndexIfNotExistsStatements

      public List<String> getCreateIndexIfNotExistsStatements()
      Gets create index if not exists statements. Example.
       TableDefinition.builder("reports") .addColumnDefinition("id", VARCHAR,
       PRIMARY_KEY).addColumnDefinition("score", INT)
       .addIndexDefinition("score").addIndexDefinition("id",
       "score").build().getCreateIndexIfNotExistsStatements();
      
       generates
      
       "[create index if not exists index_reports_score on reports(score), create index if not exists
       index_reports_id_score on reports(id, score)]"
      戻り値:
    • getCreateTableIfNotExistsStatement

      public String getCreateTableIfNotExistsStatement()
      Returns a String object representing this TableDefinition's value.
       TableDefinition.builder("reports").addColumnDefinition("id", VARCHAR, PRIMARY_KEY)
       .addColumnDefinition("score", INT).build().getTableSchema();
      
       generates
      
       "create table if not exists reports(id varchar primary key, score int)"
      戻り値:
    • getDropTableIfExistsStatement

      public String getDropTableIfExistsStatement()
      Gets drop table if exists statement.
      戻り値:
    • getTableName

      public String getTableName()
    • getTableNameAndColumnDefinitions

      public String getTableNameAndColumnDefinitions()
      Returns a String object representing this TableDefinition's value.
       TableDefinition.builder("reports").addColumnDefinition("id", VARCHAR, PRIMARY_KEY)
       .addColumnDefinition("score", INT).build().getTableSchema();
      
       generates
      
       "reports(id varchar primary key, score int)"
      戻り値:
    • toSqlDataType

      public static String toSqlDataType(Class<?> type)