001package io.ebean.config.dbplatform; 002 003import java.sql.Types; 004 005/** 006 * The known DB types that are mapped. 007 * <p> 008 * This includes extra types such as UUID, JSON, JSONB and HSTORE. 009 * </p> 010 */ 011public enum DbType { 012 013 BOOLEAN(Types.BOOLEAN), 014 BIT(Types.BIT), 015 INTEGER(Types.INTEGER), 016 BIGINT(Types.BIGINT), 017 SMALLINT(Types.SMALLINT), 018 TINYINT(Types.TINYINT), 019 REAL(Types.REAL), 020 //FLOAT(Types.FLOAT), 021 DOUBLE(Types.DOUBLE), 022 DECIMAL(Types.DECIMAL), 023 VARCHAR(Types.VARCHAR), 024 CHAR(Types.CHAR), 025 BLOB(Types.BLOB), 026 CLOB(Types.CLOB), 027 LONGVARBINARY(Types.LONGVARBINARY), 028 LONGVARCHAR(Types.LONGVARCHAR), 029 VARBINARY(Types.VARBINARY), 030 BINARY(Types.BINARY), 031 DATE(Types.DATE), 032 TIME(Types.TIME), 033 TIMESTAMP(Types.TIMESTAMP), 034 035 ARRAY(Types.ARRAY), 036 037 UUID(ExtraDbTypes.UUID), 038 INET(ExtraDbTypes.INET), 039 CIDR(ExtraDbTypes.CIDR), 040 041 POINT(ExtraDbTypes.POINT), 042 POLYGON(ExtraDbTypes.POLYGON), 043 LINESTRING(ExtraDbTypes.LINESTRING), 044 MULTIPOINT(ExtraDbTypes.MULTIPOINT), 045 MULTILINESTRING(ExtraDbTypes.MULTILINESTRING), 046 MULTIPOLYGON(ExtraDbTypes.MULTIPOLYGON), 047 048 HSTORE(ExtraDbTypes.HSTORE), 049 JSON(ExtraDbTypes.JSON), 050 JSONB(ExtraDbTypes.JSONB), 051 JSONCLOB(ExtraDbTypes.JSONClob), 052 JSONBLOB(ExtraDbTypes.JSONBlob), 053 JSONVARCHAR(ExtraDbTypes.JSONVarchar); 054 055 private final int id; 056 057 DbType(int id) { 058 this.id = id; 059 } 060 061 /** 062 * Return the JDBC java.sql.Types value. 063 */ 064 public int id() { 065 return id; 066 } 067 068 /** 069 * Create a platform type without scale or precision. 070 */ 071 public DbPlatformType createPlatformType() { 072 return new DbPlatformType(name().toLowerCase()); 073 } 074}