只介绍用Annotation的方式进行映射关系的配置。
1. 如果表名与对象名不一致,则要对表名进行配置。
使用@Table
2. 如果字段名与属性名不一致。
使用@Column
3. 不需要persistentence的字段
使用@Persistentence
4.映射日期与时间类型,指定时间精度
使用@Temporal
默认会直接记录日期与时分秒,可以进行定制。 @Temporal(TemporalType.?),?可以取3个值,DTAE(只记录日期),TIME(记录时分秒),TIMESTAMP(日期与时分秒都记录)。
5.映射枚举类型
使用@Enumerated
@Enumerated(EnumType.?)。?可取STRING、ORIDINAL,STRING表示在数据库中将以string进行储存,直接会储存枚举值。ORIDINAL表示将以数字进行储存,数字为该枚举值在枚举类型定义中所对应的位置。
范例:
@Entity
@Table(name="_teacher")
public class Teacher {
private int id;
private String name;
private String title;
private String yourWifeName;
private Date birthDate;
private boolean good;
private Gender gender;
@Enumerated(EnumType.STRING)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
public boolean isGood() {
return good;
}
public void setGood(boolean good) {
this.good = good;
}
@Transient
public String getYourWifeName() {
return yourWifeName;
}
public void setYourWifeName(String yourWifeName) {
this.yourWifeName = yourWifeName;
}
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Temporal(TemporalType.TIME)
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
}