JPAオブジェクト&Columnタイプマッピングの作成


MySQLのメンバー・テーブルに関連付けられたメンバー・オブジェクトの作成
@Entity //JPA를 사용한다고 알려주는 애노테이션
@Table(name = "member") // 클래스 이름이랑 테이블 이름이 같으면 생략 가능
public class Member {
    @Id // PK(Primary Key) 인것을 알려줌
    @Column(name = "id") // 변수 이름이랑 column name 이랑 같으면 생략 가능
    private Long id;

    @Column(name = "name", nullable = false, updatable = true, length = 10) //updatable=true가 DEFAULT; false로 하면 JPA에서 해당 column의 값 수정 X
    private String username;

    private Integer age;

    @Enumerated(EnumType.STRING) //무조건 EnumType.STRING을 쓰도록 주의
    private RoleType roleType;

    @Temporal(TemporalType.TIMESTAMP)
    private Date createdDate;

    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiedDate;

    @Lob
    private String description;

    public Member() {

    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public RoleType getRoleType() {
        return roleType;
    }

    public void setRoleType(RoleType roleType) {
        this.roleType = roleType;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
  • @Entityを持つクラスをエンティティと呼びます.JPAマッピングテーブルを使用するクラスは@Entity
  • でなければなりません.
  • オブジェクトの名前がMySQLのテーブルと異なる場合は、@Tableプレゼンテーション
  • に接続できます.
    オブジェクトの変数名を
  • テーブルのColumnと一致させるように設定します.名前が異なる場合は、@Column Anotation接続
  • を使用できます.
  • @Column:name、updataable、nullable、length、uniqueなど.Updateableをfalseとすると、JPAはこの列
  • を変更できない.
  • @Id説明PK
  • @Enumentiated:javaenumタイプをマッピングします.EnumType.ORDINALではX=>DBにEnum値が格納されていないため、Enumの順序を問い合わせるのは難しい.Enum値が変更、追加、削除された場合、どのEnum値を指しているのか分からない.EnumTypeでなければなりませんSTRINGを使います.EnumType.STRINGを使用して、Enum値に影響を与えることなく、
  • をデータベースに保存します.
  • @Transion:フィールドマッピングX、データベースに格納X、クエリーX=>メモリに一時的に値を保持する場合にのみ
  • を使用