文章目录
Hibernate_sequence
,我们可以在Hibernate.cfg.xml文件中添加如下语句解决问题<!-- 配置不生成Hibernate_sequence --> <property name="hibernate.id.new_generator_mappings">false</property> @Entity
: 映射实体类,其中有一个name属性指定当前实体类映射的表的名称
@Table
: 在实体类的上方使用,和Entity配合使用,指定实体类对应的数据库中的表的信息
@id
: 指定该属性为主键
@GeneratedValue(strategy=,generator="")
: 主键生成策略
TemporalType.TIME
输出到数据库中的仅仅是小时格式的,比如:12:22:12TemporalType.DATE
输出到数据库中的是日期的格式:2012-12-01TemporalType.TIMESTAMP
两者兼备,这个是默认的import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
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 javax.persistence.Transient;
@Entity
@Table(name="teacher")
public class Teacher {
private int id; //主键
private String name;
private int age;
private double sal;
private Date joinDate;
private String wife; //妻子的名字
@Transient //设置该属性不在表中
public String getWife() {
return wife;
}
public void setWife(String wife) {
this.wife = wife;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO) //设置主键自增长
public int getId() {
return id;
}
@Temporal(TemporalType.DATE) //设置时间精确到天数,2012-01-12
@Column(name="JoinTime") //改变表中字段的名字
public Date getJoinDate() {
return joinDate;
}
public void setId(int id) {
this.id = id;
}
@Column(nullable=false) //设置名字不为空
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public void setJoinDate(Date joinDate) {
this.joinDate = joinDate;
}
}
name
指定外键的名称
nullable
指定外键是否为空,默认的是true
unique
生成唯一的约束,就是这个字段的值唯一,默认的false
name
设置第三张表的名称
joinColumns
设置的是当前实体类对应的表在第三张表的外键的字段名称
inverseJoinColumns
设置的是另外一个实体类对应的表在第三张表的外键的字段名称