0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アライグマ目撃記録アプリ 実装①Entityクラス作成

0
Posted at

Entityクラス

・テーブル1件分を表すクラスを作成します。

データ設計(テーブル定義)

論理名 物理名 型 制約
ID id 連番 主キー
目撃日 sighted_date DATE NOT NULL
目撃時刻 sighted_time TIME NOT NULL
回数 count INTEGER NOT NULL
メモ memo VARCHAR(255)
作成日時 created_at TIMESTAMP
更新日時 updated_at TIMESTAMP

*TIMESTAMPは入力された日時をそのまま保存する。(タイムゾーンを保持しない)
TIMESTAMPTZはタイムゾーンを考慮して保存されるため、複数地域から利用するシステムでは一般的にこちらが使用される。
本アプリは単一地域での利用を前提とするため、TIMESTAMPを採用した。
*countをintではなくIntegerにするのは、nullを表現するため。
intはプリミティブ型なのでnullの表現ができず、「0回」と「未入力」の区別ができなくなる。

package com.example.demo.entity;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

import lombok.Data;

/**
 * アライグマ目撃記録1件を表すクラス。raccoonテーブルに対応する。
 */

@Entity
@Data
@Table(name = "raccoon")
public class Raccoon {
	public Raccoon() {}
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id;
	
	private LocalDate sightedDate;
	
	private LocalTime sightedTime;
	
	private Integer count;
	
	private String memo;
	
	private LocalDateTime createdAt;
	
	private LocalDateTime updatedAt;
}

アノテーション@

@Entity
・JPAの管理対象であることを示す。テーブル名省略時はクラス名が使用される。

@Table
・クラスと対応づけるテーブル名を明示的に指定する。

@Data
・ToString, Getter, Setter, RequiredArgsConstructor, EqualsAndHashCode全てのアノテーションを設定したのと同じ。

@Id
・Entityの主キーを指定する。

@GeneratedValue(strategy = GenerationType.IDENTITY)
・自動採番(自動で番号を振ること)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?