hibernate关联映射
来源:互联网 发布:淘宝网络推广公司排名 编辑:程序博客网 时间:2024/05/21 22:46
hibernate实现ORM(对象关系映射)
hibernate基本文件(xml非注解)
1)*.java映射类
2)*.hbm.xml 映射文件
3).cfg.xml数据库配置文件(+驱动加载.properties文件)*
hibernate有7种映射关系
(1)单向一对一
1)Annotation方法
exp:
@Entitypublic class Author { private int id; private String name; @Id public int getId() { return id; } ....set(),get()方法 @Entitypublic class Books { private int id; private String bookname; private Author author; @Id public int getId() { return id; } .... @OneToOne public String getAuthor(){ return author; }
2)xml方法
采用的标签映射,并指定unique为true,限制多的一端唯一
(2)单向多对一
1)Annotation方法
雷同单向一对一,在多的一端注解@ManyToOne
2)xml方法
<many-to-one name="group" column="groupid"/>
(3)单向一对多
1)Annotation方法
@Entity@Table(name="Group_table")public class Group { private int id; private String GroupName; private Set<User> users = new HashSet<User>(); @Id public int getId() { return id; } ... @OneToMany public Set<User> getUsers() { return users; }@Entity@Table(name = "user_table")public class User { private int id; private String name; @Id public int getId() { return id; } ...
2)xml方法
<set name="User"> <key column="GroupId"/> <one-to-many class="csc.hfz.Model.User"/> </set>
注:单向一对多,在多的一方前提是不知道一端是哪个,维护与Group关系Groupid为NULL
(4)单向的多对多
单向多对多就需要第三张表的建立关系
1)Annotation方法
参考单向一对多关联,不多介绍
2)xml方法,User边添加
<set name="teacher" table="t_user_Group"> <key column="user_id"/> <many-to-many class="csc.hfz.Model.Group" column="Group_id"/> </set>
(5)双向一对一
1)Annotation方法
exp:
@Entity@Table(name="User_T")public class User { private int id; private String name; private Group group; @OneToOne @JoinColumn(name="group_id",unique=true) //name自定义关联外键的列名 public Group getGroup() { return group; } @Id public int getId() { return id; } ... @Entity@Table(name="Group_T")public class Group { private int id; private String GroupName; private User user; public String getGroupName() { return GroupName; } @Id public int getId() { return id; } @OneToOne(mappedBy="group") //mappedBy是指定User中的group作为关联外键,否则User和group都会出现外键 public User getUser() { return user; } ...
注意:此处的group指的是与User中getGroup的group对应
2)xml方法
<one-to-one name="user"property-ref="group"/>
注意:一对一唯一外键关联双向采用标签映射,必须指定标签中的property-ref属性为关系字段的名称
(6)双向多对多
1)Annotation方法
2)xml方法,Student边添加(设2个类为Student,Teacher)
<set name="teacher" table="t_Student_Teacher"> <key column="Student_id"/> <many-to-many class="csc.hfz.Model.Teacher" column="Teacher_id"/> </set>
Teacher边添加
<set name="Student" table="t_Student_Teacher"> <key column="Teacher_id"/> <many-to-many class="csc.hfz.Model.Student" column="Student_id"/> </set>
**注意:
- 生成的中间表名称必须一样
- 生成的中间表中的字段必须一样
**
(7)双向一对多
1)Annotation方法
一对多双向关联的映射方式:
在一的一端的集合上采用标签,在多的一端加入一个外键
在多的一端采用标签
2)xml方法,Student边添加(设2个类为Student,Teacher)
Group添加:
<set name="students"inverse="true"> <key column="groupid"/> <one-to-many class="csc.hfz.Model.Student"/> </set>
Student:
<many-to-one name="group" column="studentid"/>
**注意:inverse属性…..:
inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联
由对方控制。**
祝2017新年快乐!
- 关联映射(hibernate映射)
- Hibernate关联映射-----一对一关联
- Hibernate集合映射、关联映射
- Hibernate映射关联详解
- hibernate一对一关联映射--
- Hibernate的关联映射
- hibernate 的关联映射
- hibernate一对一关联映射
- hibernate关联映射
- Hibernate关联映射
- hibernate关联映射
- hibernate一对一关联映射
- Hibernate关联映射小结
- Hibernate 关联映射总结
- hibernate关联映射-单向
- hibernate关联映射
- hibernate关联映射-双向
- Hibernate 关联映射
- 多项式输出
- callback 回调函数
- USB键盘无法识别解决方法
- Bootstrap警告框使用方法
- netty中的ChannelHandler
- hibernate关联映射
- 1.2编写C++应用程序&1.3学习桌面应用程序的编程
- Swagger之SpringMVC集成(springfox)
- magento 捆绑产品价格
- HTTPS和HTTP的区别
- iOS视频开发
- vector基本操作_迭代器遍历和种类
- Html5 Canvas 系列_绘图一
- Android下Pull生成xml与解析xml