1.hibernate多对一单向关系映射(外键永远会加在多的一方)
package yingjun.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { private int id; private String name; private int age; @Id @GeneratedValue public 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package yingjun.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Dream { private int dreamid; private String dream; private Person person; @Id @GeneratedValue public int getDreamid() { return dreamid; } public void setDreamid(int dreamid) { this.dreamid = dreamid; } public String getDream() { return dream; } public void setDream(String dream) { this.dream = dream; } public void setPerson(Person person) { this.person = person; } @ManyToOne //建立多对一联系 @JoinColumn(name="personid") public Person getPerson() { return person; } }
create table Dream ( dreamid integer not null auto_increment, dream varchar(255), personid integer, primary key (dreamid) ) create table Person ( id integer not null auto_increment, age integer not null, name varchar(255), primary key (id) ) alter table Dream add index FK3F397E3E07A4B5E (personid), add constraint FK3F397E3E07A4B5E foreign key (personid) references Person (id)
2.hibernate一对多单向关系映射(外键永远会加在多的一方)
package yingjun.model; import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; @Entity public class Person { private int id; private String name; private int age; private Set<Dream> dream=new HashSet<Dream>(); @Id @GeneratedValue public 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @OneToMany @JoinColumn(name="personid")//要加这个字段 不然会用多对多的方式生产3张表 public Set<Dream> getDream() { return dream; } public void setDream(Set<Dream> dream) { this.dream = dream; } }
package yingjun.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Dream { private int dreamid; private String dream; @Id @GeneratedValue public int getDreamid() { return dreamid; } public void setDreamid(int dreamid) { this.dreamid = dreamid; } public String getDream() { return dream; } public void setDream(String dream) { this.dream = dream; } }
create table Dream ( dreamid integer not null auto_increment, dream varchar(255), personid integer, primary key (dreamid) ) create table Person ( id integer not null auto_increment, age integer not null, name varchar(255), primary key (id) ) alter table Dream add index FK3F397E3E07A4B5E (personid), add constraint FK3F397E3E07A4B5E foreign key (personid) references Person (id)
3.hibernate多对一(一对多)双向关系映射
package yingjun.model; import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.MappedSuperclass; import javax.persistence.OneToMany; @Entity public class Person { private int id; private String name; private int age; private Set<Dream> dream=new HashSet<Dream>(); @Id @GeneratedValue public 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @OneToMany(mappedBy="person") //mappedBy要加在One这方 public Set<Dream> getDream() { return dream; } public void setDream(Set<Dream> dream) { this.dream = dream; } }
package yingjun.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Dream { private int dreamid; private String dream; private Person person; @Id @GeneratedValue public int getDreamid() { return dreamid; } public void setDreamid(int dreamid) { this.dreamid = dreamid; } public String getDream() { return dream; } public void setDream(String dream) { this.dream = dream; } @ManyToOne public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
create table Dream ( dreamid integer not null auto_increment, dream varchar(255), person_id integer, primary key (dreamid) ) create table Person ( id integer not null auto_increment, age integer not null, name varchar(255), primary key (id) ) alter table Dream add index FK3F397E3F8EABE73 (person_id), add constraint FK3F397E3F8EABE73 foreign key (person_id) references Person (id)
相关推荐
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向...Hibernate 一对多外键双向关联 Hibernate 一对多连接表双向关联 Hibernate 多对多双向关联
hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
简单的Hibernate的N对N关系的映射,这里主要的只是谈到了关于如何映射一对一,多对一,多对多的单向和双向映射。 当然,其实所谓的单双向映射最终还是要表现在select时的作用,但是这一部分并未介绍。 我想,要想搞...
hibernate各种映射关系祥解 一对一双向 一对一单向 一对多双向 一对多单向 多对一单向 多对多双向 多对多单向
hibernate一对多双向自连接关联映射 15 hibernate多对多关联映射(单向User---->Role) 19 hibernate多对多关联映射(双向User<---->Role) 20 Hibernate的继承关系 21 每棵继承树映射成一张表(hibernate_extends_1) 22 ...
建立对SQL语句的映射是Hibernate框架操作数据库的主要手段,这里我们列举实例来为大家讲解Java的Hibernate框架中一对多的单向和双向关联映射
014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多关联映射 单向 017 多对多关联映射 双向 018 关联映射文件中标签中的 lazy(懒加载)属性 019 关联映射文件中集合标签中的 lazy(懒加载)属性 020 、单端...
Hibernate表关系总结(一对一,多对一,多对多,单向,双向),有具体实例代码
Hibernate 实体关联关系映射 学习总结 把一对一 一对多 单向 双向 主键 外键 链接表等讲的比较清楚
通过在被拥有的实体端(owned entity)增加一个外键列来实现一对多单向关联是很少见的,也是不推荐的,建议通过一个联接表来实现这种关联(下面会讲到)。 @JoinColoumn批注来描述这种单向关联关系 @Entity Public class...
实现Hibernate框架中一对一,一对多,多对多关系的单向和双向配置总结!
21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...
21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...
9.配置会员到留言的一对多单向关联关系 10.配置管理员到留言的一对多单向关联关系 11.配置会员到购物车的一对多单向关联关系 12.配置订单到购物车的一对一单向关联关系 13.配置购物车到商品的多对多单向关联关系
21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...
7.3 映射一对多双向自身关联关系 7.4 改进持久化类 7.5 小结 7.6 思考题 第8章 通过Hibernate操纵对象(上) 8.1 Java对象在JVM中的生命周期 8.2 理解Session的缓存 8.2.1 Session的缓存的作用 ...
21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...
21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...