首页 > 代码库 > hibernate注解配置

hibernate注解配置

1.映射实体

注解:将一个类声明为实体类,在通过配置文件指向,,在生成的get方法上配置映射标示符属性


格式如下:

@Entity
@Table(name="表名")

映射主键标示符属性

@Id
@GeneratedValue
@Column(name="表中主键列")

映射标示符属性

@Column(name="表中对应的列名")


2.单向一对多 在低的一方配置对方的集合

例子:

首先定义相关联表的set集合

private Set<对方的类名> a = new HashSet<对方的类名>();

主键配置,和其他属性的配置映射如上

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="对应表的外键列名")
public Set<Board> getSet(){}

 

3.单向多对一 在多的一方配置低的一方的对象

例子:

主键配置,和其他属性的配置映射如上


@ManyToOne(Fetch = Fetch.EAGER)
@JoinColumn(name="category_id")
public 类名 get创建的对象名(){
....
}


4.多对多 互相创建对方的set集合 多对多为配置配置需要第三张中间表

映射实体和属性如上

例子:

private Set<Cours> cours = new HashSet<Cours>();

getset...

@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name="第三张中间表名",
joinColumns = @JoinColumn(name="本表主键在数据库的中间表对应的外键名"),
inverseJoinColumns=@JoinColumn(name="想要关联表在中间表的外键名"))
public Set<Cours> getCours(){
.....
}

另一实体类的配置:基本配置如上实体类

private Set<Student> stu = new HashSet<Student>();
getset....

@ManyToMany(cascade=CascadeType.ALL,
fetch = FetchType.LAZY,mappedBy="courses")
public Set<Student> getStu(){
....
}

总结:

1.在面向对象设计和实体模型关系中,对象间关系一般包括:
一对多(one-to-many)
多对一(many-to-one)
多对多(many-to-many)
2. 对象是现实世界中具有唯一性的事物 单向一对多只需在“一”的一方进行配置,反之就是单向多对一
3.双向一对多就是对单向一对多的一种改进 多对多配置

hibernate注解配置