码迷,mamicode.com
首页 > Web开发 > 详细

hibernate注解配置

时间:2017-07-10 22:18:10      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:唯一性   单向一对多   单向多对一   too   ade   generate   生成   student   font   

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注解配置

标签:唯一性   单向一对多   单向多对一   too   ade   generate   生成   student   font   

原文地址:http://www.cnblogs.com/lxiaoyang/p/7147563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!