基本クラス

概要

Doma では、データベースのカラム型にマッピング可能なJava型を 基本クラス と呼びます。

基本クラス一覧

  • char を除くプリミティブ型

  • 上記のプリミティブ型のラッパー クラス

  • 列挙型

  • byte[]

  • java.lang.String

  • java.lang.Object

  • java.math.BigDecimal

  • java.math.BigInteger

  • java.time.LocalDate

  • java.time.LocalTime

  • java.time.LocalDateTime

  • java.sql.Date

  • java.sql.Time

  • java.sql.Timestamp

  • java.sql.Array

  • java.sql.Blob

  • java.sql.Clob

  • java.sql.SQLXML

  • java.util.Date

時制クラスの違い

java.time.LocalDate:

SQL日付を表します

java.time.LocalTime:

SQL時間を表します

java.time.LocalDateTime:

SQL TIMESTAMP を表し、RDBMS がサポートしている場合はナノ秒を保持する可能性があります

java.sql.Date:

SQL日付を表します

java.sql.Time:

SQL時間を表します

java.sql.Timestamp:

SQL TIMESTAMP を表し、RDBMS がサポートしている場合はナノ秒を保持する可能性があります

java.util.Date:

SQL TIMESTAMP を表し、ナノ秒を保持しません

エンティティクラスでの使用

@Entity
public class Employee {

    @Id
    Integer employeeId;

    Optional<String> employeeName;

    @Version
    Long versionNo;

    ...
}

ドメインクラスでの使用

@Domain(valueType = String.class)
public class PhoneNumber {

    private final String value;

    public PhoneNumber(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

DAO インタフェースでの使用

@Dao
public interface EmployeeDao {

    @Select
    Employee selectById(Integer employeeId);

    @Select
    List<String> selectAllName();
}