2019独角兽企业重金招聘Python工程师标准>>>

模型user,address

User中的userid和address中的user_id进行一对多

user sql

CREATE TABLE `NewTable` (
`userid`  int(11) NOT NULL AUTO_INCREMENT ,
`account`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`userid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=40
ROW_FORMAT=COMPACT
;

address sql

CREATE TABLE `NewTable` (
`addressid`  int(11) NOT NULL AUTO_INCREMENT ,
`addressinfo`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`user_id`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`addressid`),
FOREIGN KEY (`user_id`) REFERENCES `user` (`userid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `userud` (`user_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=77
ROW_FORMAT=COMPACT
;

user

package dto;import java.util.HashSet;
import java.util.Set;public class User {private int userid;private String account;private String password;private Set<Address> addresses = new HashSet<Address>();public Set<Address> getAddresses() {return addresses;}public void setAddresses(Set<Address> addresses) {this.addresses = addresses;}public int getUserid() {return userid;}public void setUserid(int userid) {this.userid = userid;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

user.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2015-6-21 20:34:34 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping><class name="dto.User" table="user" catalog="snlu"><id name="userid" type="java.lang.Integer"><column name="userid" /><generator class="identity" /></id><property name="account" type="string"><column name="account" /></property><property name="password" type="string"><column name="password" /></property><set name="addresses" table="address" inverse="false" lazy="true" fetch="select" cascade="save-update"><key><column name="user_id" /></key><one-to-many class="dto.Address" /></set></class>
</hibernate-mapping>

address

package dto;public class Address {private Integer addressid;private User user;private String addressinfo;public Integer getAddressid() {return addressid;}public void setAddressid(Integer addressid) {this.addressid = addressid;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getAddressinfo() {return addressinfo;}public void setAddressinfo(String addressinfo) {this.addressinfo = addressinfo;}}

address.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2015-6-21 20:34:34 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping><class name="dto.Address" table="address" catalog="snlu"><id name="addressid" type="java.lang.Integer"><column name="addressid" /><generator class="identity" /></id><many-to-one name="user" class="dto.User" fetch="select"><column name="user_id" /></many-to-one><property name="addressinfo" type="string"><column name="addressinfo" /></property></class>
</hibernate-mapping>

main

package test;import org.hibernate.Session;
import org.hibernate.Transaction;import util.HibernateUtil;
import dto.Address;
import dto.User;public class UserTest {public static void main(String[] args) {Session session = HibernateUtil.getSessionFactory().openSession();Transaction tx = session.beginTransaction();Address a = new Address();a.setAddressinfo("america");Address a2 = new Address();a2.setAddressinfo("china");User user = new User();user.setAccount("jack");user.setPassword("111111");user.getAddresses().add(a);user.getAddresses().add(a2);session.save(a);session.save(a2);session.save(user);tx.commit();HibernateUtil.closeSession();}}

转载于:https://my.oschina.net/enjoymore/blog/469292

Hibernate一对多双向关联相关推荐

  1. Hibernate(九)一对多双向关联映射

    上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在 ...

  2. Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射

    在我们以前的数据库设计中,设计表就不是一件轻松的事情.多种事物之间往往都是有这样那样的关系的.那怎样设计表格,才能既将事情描述明白,又能使数据库设计的比较合理呢?那里我们提供了好多规范,好多约束来满足 ...

  3. Hibernate一对多单向关联和双向关联映射方法及其优缺点

    一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同. 它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的 ...

  4. hibernate的一对多双向关联映射----客户和订单关系

    客户和订单关系:客户是一的一方,订单是多的一方. customer表: CREATE TABLE `customer` ( `ID` int(4) NOT NULL AUTO_INCREMENT , ...

  5. hibernate的映射之二(一对多双向关联)

    hibernate的一对多双关联 一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多 hihernate一对多关联映射(双向Dept<----->Emp) 一对多双 ...

  6. hibernate一对多自关联的记录(以树形菜单为例)

    下图为一个普通的树形菜单,这里有几个概念需要提前说明: 1.对于树形菜单中的某一个菜单而言,都是有子节点与父节点的,根节点与无子节点的菜单除外 2.一个父节点是可以有多个子节点的,而一个子节点只能对应 ...

  7. myeclipse hbm2java_myeclipse试用小记----Hibernate多对一双向关联(2)

    myeclipse试用小记----Hibernate多对一双向关联(2) 在上篇文章"myeclipse试用小记----Hibernate多对一单向关联(1)"中,讲到了" ...

  8. myeclipse试用小记----Hibernate多对一双向关联(2)

    myeclipse试用小记----Hibernate多对一双向关联(2) 在上篇文章"myeclipse试用小记----Hibernate多对一单向关联(1)"中,讲到了" ...

  9. jpa级联添加_JPA中的一对多双向关联与级联操作

    学习Spring有两周时间了 , 个人觉得服务端主要实现的是数据关系的维护和数据结构的制定 , 以及由业务需求产生的CRUD , 只要保证对前端提供的接口稳定高效响应 , 具体的前端实现完全不关心. ...

  10. 【Hibernate步步为营】--双向关联一对一映射具体解释(一)

    一对一的映射在对象模型中是常常见到的,为了将对象模型转换为关系模型就必须在映射文件里进行配置,上篇文章讨论了一对一映射的单向关联的情况,重点是<one-to-one>标签的使用,须要在映射 ...

最新文章

  1. javaBean为什么要implements Serializable
  2. zookeeper专题:使用zookeeper客户端实现动态监听节点并获取数据
  3. pandas 多线程处理数据框
  4. java 上调下移_java – 在调整框架大小时,JLabel的位置会更...
  5. java(21) - 注解详解
  6. 《Head First 设计模式》之迭代器与组合模式——遍历合并的菜单
  7. [ 文献翻译 ] 非合作博弈中的固定时间纳什均衡求解
  8. 基于android的家庭财务通 .apk,毕业设计(论文)-基于Android的家庭财务管家的设计与实现.doc...
  9. 数字视频广播字幕系统(第6.7章)
  10. zotero导出PDF
  11. 开发者分享 | AXI 基础第 3 讲-使用 AXI VIP 作为 AXI4 主 (Master) 接口的协议检查工具...
  12. 计算机学院志愿公益活动,计算机科学与技术学院志愿者走进“君子残疾人之家”...
  13. Python中的数据序列(元组、集合、字典)
  14. Dockerfile 命令详解
  15. 前端大文件上传断点续传解决方案
  16. 运筹学基础【十】 之 盈亏分析模型
  17. python123练习题文库,Python程序设计试题库.doc
  18. uni-app 自定义导航栏 图片按钮
  19. flash actionscript 3.0 发布H264的视频流
  20. 桌面运维用到的网站(转载)

热门文章

  1. [Bootstrap]7天深入Bootstrap(1)入门准备
  2. 很牛的vim使用技巧nbsp;转载来的
  3. 第十七章 特殊成员_使用typedef简化函数指针的声明
  4. 修改服务器控件的ID和Name
  5. springboot访问路径添加项目名称、tomcat端口号
  6. 201671030119 唐盖强 实验十四 课程学习总结
  7. Windows上搭建Git服务器
  8. 成也英雄,败也英雄—Sun前CEO Scott Mc- Nealy
  9. 第一次知识补充及用户登录(三次机会重试)作业
  10. SpringMVC使用CommonsMultipartResolver上传文件