日付と列挙などのフィールドタイプのJPAマッピング

1993 ワード

列挙クラス
package cn.com.jyp.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "person")
public class Person {
	private Integer id;
	private String name;
	private Date birthday;
	private Gender gender;

	@Id
	@GeneratedValue
	public Integer getId() {
		return id;
	}

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

	@Column(name = "personName", length = 15, nullable = false)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Temporal(TemporalType.DATE)
	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	@Enumerated(EnumType.STRING)
	@Column(length = 5, nullable = false)
	public Gender getGender() {
		return gender;
	}

	public void setGender(Gender gender) {
		this.gender = gender;
	}

}


@Table(name="person")
テーブル名の指定
@Column(name = "personName", length = 15, nullable = false)
フィールド名、長さ、空でないことを指定します(nullableデフォルトはtrue)
@Temporal(TemporalType.DATE)
Dateタイプのプロパティをマップします.TemporalType.DATEは、データベースに保存されていることを示します.1988-02-04です.TemporalType.TIMEは、データベースへの保存が12:12:12であることを示します.
@Enumerated(EnumType.STRING)
列挙タイプのプロパティをマップします.EnumType.STRINGは、列挙クラスの値をデータベースに格納することを表す.EnumType.ORDINALは、列挙クラスのインデックスをデータベースに保存することを示します.