hibernate基础配置

来源:互联网 发布:南宁java培训多少钱 编辑:程序博客网 时间:2024/05/29 03:21

1.表名和类名不同,对表名进行配置。

a.Annotation:@Table


package com.wxh.hibernate.model;import javax.persistence.Entity; import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="_Teacher")public class Teacher {private int id;private String name;private String title;@Idpublic int getId() {return id;}@Idpublic 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;}}

2.字段名和属性相同

a.默认为@basic

b.Xml:不用写column


3.字段名和属性名不同

a.Annotation:@column


package com.wxh.hibernate.model;import javax.persistence.Column;import javax.persistence.Entity; import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="_Teacher")public class Teacher {private int id;private String name;private String title;@Idpublic int getId() {return id;}@Idpublic void setId(int id) {this.id = id;}@Column(name="_name")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;}}


4.不需要psersistence的字段

a.Annotation:@Transient

Xml:不写

package com.wxh.hibernate.model;import javax.persistence.Column;import javax.persistence.Entity; import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Transient;@Entity@Table(name="_Teacher")public class Teacher {private int id;private String name;private String title;private String myFatherName;@Idpublic int getId() {return id;}@Idpublic void setId(int id) {this.id = id;}@Column(name="_name")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;}//这个属性透明,不在数据库存储@Transientpublic String getMyFatherName() {return myFatherName;}public void setMyFatherName(String myFatherName) {this.myFatherName = myFatherName;}}


5.映射日期与时间类型,指定时间精度。

a.Annotation:@Temporal

b.Xml:指定type

package com.wxh.hibernate.model;import java.util.Date; import javax.persistence.Column;import javax.persistence.Entity; import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Temporal;import javax.persistence.TemporalType;import javax.persistence.Transient;@Entity@Table(name="_Teacher")public class Teacher {private int id;private String name;private String title;private String myFatherName;//默认日期和时间都会保存下来private Date birthDate;@Idpublic int getId() {return id;}@Idpublic void setId(int id) {this.id = id;}@Column(name="_name")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;}//这个属性透明,不在数据库存储@Transientpublic String getMyFatherName() {return myFatherName;}public void setMyFatherName(String myFatherName) {this.myFatherName = myFatherName;}@Temporal(TemporalType.DATE)//加上注解后只保留日期public Date getBirthDate() {return birthDate;}public void setBirthDate(Date birthDate) {this.birthDate = birthDate;}}


6.映射枚举类型

a.@Enumerated

 

7.字段映射的位置(field或者get方法)

a.best practice:保持fieldget set 方法的一致。



0 0
原创粉丝点击