Skip to content

Latest commit

 

History

History
115 lines (82 loc) · 1.88 KB

basic.rst

File metadata and controls

115 lines (82 loc) · 1.88 KB

Basic classes

Overview

The Java types can be mapped to database column types are called "Basic classes" in Doma.

List of basic classes

  • primitive types except char
  • wrapper class for above primitive types
  • enum types
  • 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

Differences between temporal classes

java.time.LocalDate

represents SQL DATE

java.time.LocalTime

represents SQL TIME

java.time.LocalDateTime

represents SQL TIMESTAMP and may hold nanoseconds if RDBMS supports it

java.sql.Date

represents SQL DATE

java.sql.Time

represents SQL TIME

java.sql.Timestamp

represents SQL TIMESTAMP and may hold nanoseconds if RDBMS supports it

java.util.Date

represents SQL TIMESTAMP and doesn't hold nanoseconds

Examples

Using in entity class

@Entity
public class Employee {

    @Id
    Integer employeeId;

    Optional<String> employeeName;

    @Version
    Long versionNo;

    ...
}

Using in domain class

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

    private final String value;

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

    public String getValue() {
        return value;
    }
}

Using in DAO interface

@Dao
public interface EmployeeDao {

    @Select
    Employee selectById(Integer employeeId);

    @Select
    List<String> selectAllName();
}