博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate之关于一对多单向关联映射
阅读量:6855 次
发布时间:2019-06-26

本文共 3399 字,大约阅读时间需要 11 分钟。

【hibernate】之关于一对多单向关联映射

基于外键的一对多关联映射!

一对多,Group(组)对于Person(人),一个组能够有多个人!ok?

Hibernate主要有两种配置方法。一种是Annotations 一种是XML

以下是Annotations的配置方法!

@Entity@Table(name="t_group")publicclass Group {    private Integer id;    private String name;    private Set
persons=newHashSet
();//set不同意反复,最适合数据库模型 @Id @GeneratedValue public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } @Column(name="t_name") public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } @OneToMany //加上@JoinColumn是为了防止Hibernate将一对多当做多对多来处理,产生中间表 @JoinColumn(name="group_id") public Set
getPersons() { returnpersons; } publicvoidsetPersons(Set
persons){ this.persons = persons; }}
@Entity@Table(name="t_person")publicclass Person {    private Integer id;    private String name;    private Integer age;    @Id    @GeneratedValue    public Integer getId() {       returnid;    }    publicvoid setId(Integerid) {       this.id = id;    }    @Column(name="t_name")    public String getName() {       returnname;    }    publicvoid setName(Stringname) {       this.name = name;    }    @Column(name="t_age")    public Integer getAge() {       returnage;    }    publicvoid setAge(Integerage) {       this.age = age;    }}
XML配置一对多的单向关联映射
publicclass Person {    private Integer id;    private String name;    private Integer age;    public Integer getId() {       returnid;    }    publicvoid setId(Integerid) {       this.id = id;    }    public String getName() {       returnname;    }    publicvoid setName(Stringname) {       this.name = name;    }    public Integer getAge() {       returnage;    }    publicvoid setAge(Integerage) {       this.age = age;    }}
publicclass Group {    private Integer id;    private String name;    private Set
persons=newHashSet
();//set不同意反复,最适合数据库模型 public Integer getId() { returnid; } publicvoid setId(Integerid) { this.id = id; } public String getName() { returnname; } publicvoid setName(Stringname) { this.name = name; } public Set
getPersons() { returnpersons; } publicvoidsetPersons(Set
persons) { this.persons = persons; }}

xml version="1.0"?

> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Group"table="t_group"> <id name="id"> <column name="id"/> <generator class="native" /> </id> <property name="name" /> <set name="persons"> <key column="group_id"/> <one-to-many class="csg.hibernate.entity.Person"/> </set> </class> </hibernate-mapping>

xml version="1.0"?

> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="csg.hibernate.entity"> <class name="Person"table="t_person"> <id name="id"> <column name="id"/> <generator class="native" /> </id> <property name="name" /> <property name="age" /> </class> </hibernate-mapping>

Ok,一对多单向关联映射的Annotations和XML配置方法!

转载地址:http://poyyl.baihongyu.com/

你可能感兴趣的文章
Dagger2
查看>>
图论广度优先搜索
查看>>
干货 | 携程图片服务架构
查看>>
Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
查看>>
这样玩算法才够酷
查看>>
【初识】-JUC·ThreadPoolExecutor 线程池
查看>>
深入剖析某国外组织针对中国企业的APT攻击(CVE-2015-8651)
查看>>
Bandit Walkthrough
查看>>
一款开发中的中国风React组件库...
查看>>
CentOS 下使用 Pipenv + Gunicorn + Supervisor 部署 Flask 程序
查看>>
最新全国手机号码归属地信息SQLite数据库2019年2月更新
查看>>
Promise面试题,控制异步流程
查看>>
第一个springboot项目
查看>>
人工智能期末笔记
查看>>
如何正确地给图像添加高斯噪声
查看>>
HTML5 Geolocation API的正确使用
查看>>
从需求到数据到改进,如何形成闭环
查看>>
PM2自动部署代码流程总结
查看>>
[LeetCode] 432. All O`one Data Structure
查看>>
关于只触发自身绑定的事件
查看>>