Hibernate 关系映射 —— 双向(一对多)多对一
来源:互联网 发布:剑三成女捏脸数据 云盘 编辑:程序博客网 时间:2024/05/24 05:44
关于关系映射的一些基本知识点,请查看总结篇:Hibernate 关系映射
对象模型: user 多对一 group
Annotation方式:
配置方法:1. 以多的一端为主,先配置多的一端;
2. 在多(user)的一端添加注解:@ManyToOne @JoinColumn(name="groupid"), name属性用来指定生成外键名称
3. 在一(group)的一端添加注解@OneToMany(mappedBy="group"),其中mappedBy属性必填,表示users属性已经在group中做了映射
具体代码:
package com.zyh.hibernate;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="_group")public class Group {private int id;private String name;private Set<User> users = new HashSet<User>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@OneToMany(mappedBy="group")public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}}package com.zyh.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="_user")public class User {private int id;private String name;private Group group;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToOne@JoinColumn(name="groupid")public Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}}
xml方式:
user中配置:
<many-to-one name="group" column="groupid"></many-to-one>, column属性表示外键的名称
group中配置:
<set name="users">
<!-- key 属性不能去掉,且column的值必须和user的many-to-one中的column的值相同 -->
<one-to-many class="com.zyh.hibernate.User" />
</set>
具体配置:
Group.hbm.xml;
<hibernate-mapping><class name="com.zyh.hibernate.Group" table="_group"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="name" column="name" /> <set name="users"> <!-- key 属性不能去掉,且column的值必须和user的many-to-one中的column的值相同 --> <key column="groupid"></key> <one-to-many class="com.zyh.hibernate.User" /> </set> </class></hibernate-mapping>User.hbm.xml:
<hibernate-mapping><class name="com.zyh.hibernate.User" table="_user"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="name" column="name" /> <many-to-one name="group" column="groupid"></many-to-one> </class></hibernate-mapping>
查看其它关系映射:Hibernate 关系映射
- Hibernate 关系映射 —— 双向(一对多)多对一
- hibernate对象关系映射( 一对一,一对多,多对一,多对多的单向,双向映射 ——)
- Hibernate关联关系映射(单向一对多、单向多对一、双向一对多)
- hibernate 关联映射:多对一(一对多)双向关联关系
- hibernate-关系映射一对多(多对一)双向关联)-10
- hibernate映射关系 一对多、多对一单向关联 一对多双向关联
- hibernate 关联映射 双向多对一(一对多)
- hibernate对象关系映射(一对一,一对多,多对一,多对多的单向,双向映射)
- Hibernate关联关系映射-----双向一对多/多对一映射配置
- Hibernate关联关系映射-----双向一对多/多对一映射配置
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate双向一对一,一对多,多对多关系映射
- hibernate双向多对一映射关系
- Hibernate关联关系映射(一对多/多对一)
- Online LDA的python实现
- OCI文档、C++实现例子
- Win7+Ubuntu12.04(EasyBCD硬盘安装)
- 设计模式:建造模式
- Android: NDK编程入门笔记
- Hibernate 关系映射 —— 双向(一对多)多对一
- 插入排序
- 整理c#托管资源和非托管资源区别
- sql server 2008不允许修改表结构
- 数据库oracle RAC,磁阵路径改变,造成启动错误CRS-4535 CRS-4000
- jdk与jre的区别
- IOS 上拉分页刷新--
- hdu 3411 (DFS+最短路)
- Oracle10g技术问题总结(五)windows操作系统下Oracle数据库启动与关闭的说明