`
mzhj
  • 浏览: 223777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

05、日期_枚举等字段类型的JPA映射

阅读更多


     映射元数据是什么样的?不设置默认的情况下: 实体类Person生成表是Person表;   字段id,name,采用bean中getXXX、setXXX的XXX名称作为字段的名称,而不是采用属性的名称作为字段名称

Person.java

package cn.itcast.bean;

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

import java.util.Date;

@Entity         //以javax开发的包,都是Sun公司制定的一些规范
@Table(name = "PersonTable")         //改变数据库中映射表名
public class Person {
	private Integer id;
	private String name;
	private Date birthday;  //1987-12-10
	private Gender gender = Gender.MAN;   //这里可以设置默认值, Gender是一个枚举类型。

	@Enumerated(EnumType.STRING)  //说明这个属性是个枚举类型,括号内的表示存入数据库的枚举字符串而不是枚举索引
	@Column(length = 5, nullable = false)	//Eclipse代码助手快捷键为ALT+/
	public Gender getGender() {
		return gender;
	}

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

	@Temporal(TemporalType.DATE)  //说明这个属性映射到数据库中是一个日期类型,括号中的是日期格式
	public Date getBirthday() {
		return birthday;
	}

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

	public Person() {
		/* 对象是由Hibernate为我们创建的,当我们通过ID来获取某个实体的时候,这个实体给我们返回了这个对象的创建是由Hibernate内部通过反射技术来创建的,反射的时候用到了默认的构造函数,所以这时候必须给它提供一个public的无参构造函数。*/
	}

	public Person(String name) {
		this.name = name;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	// auto是默认值,可不写,直接写@GeneratedValue
	public Integer getId() {
		return id;
	}

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

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

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

 

  @Column 的选项。 看图:

 

   @Temporal 的选项。 看图:

 

   @Temporal(TemporalType.)的选项。 看图:

 

@Enumerated(EnumType.) 的选项。 看图:

 

  • 大小: 21.4 KB
  • 大小: 10.1 KB
  • 大小: 29.7 KB
  • 大小: 20.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics