基本クラス
概要
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();
}