论坛首页 编程语言技术论坛

Hibernate基本配置:类与表之间的映射关系

浏览 2466 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-12-11  

只介绍用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;

  }

  }

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics