hibernate——onetomany(双向)
来源:互联网 发布:农村淘宝加盟有钱挣吗 编辑:程序博客网 时间:2024/06/08 02:55
hibernate——onetomany(双向)
package com.xueyoucto.xueyou;import org.hibernate.annotations.Cascade;import org.hibernate.annotations.CascadeType;import javax.persistence.*;import java.util.HashSet;import java.util.Set;/** * Created by Administrator on 2016/6/26. */@Entity@Table(name = "h3_maindouble")public class MainDouble { @Id @Column(name = "mid") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; @OneToMany(targetEntity = SubDouble.class,mappedBy = "maindouble") private Set<SubDouble> subDoubles = new HashSet<SubDouble>(); public Set<SubDouble> getSubDoubles() { return subDoubles; } @OneToMany(targetEntity = SubDouble2.class) @JoinTable(name = "MainDouble_SubDouble2",joinColumns = @JoinColumn(name = "mid",referencedColumnName = "mid"), inverseJoinColumns = @JoinColumn(name = "sid2",referencedColumnName = "sid2",unique = true)) private Set<SubDouble2> subDouble2s = new HashSet<SubDouble2>(); public Set<SubDouble2> getSubDouble2s() { return subDouble2s; } public void setSubDouble2s(Set<SubDouble2> subDouble2s) { this.subDouble2s = subDouble2s; } public void setSubDoubles(Set<SubDouble> subDoubles) { this.subDoubles = subDoubles; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } private int age;}
package com.xueyoucto.xueyou;import javax.persistence.*;/** * Created by Administrator on 2016/6/26. */@Entity@Table(name = "h3_subdouble")public class SubDouble { @Id @Column(name = "sid") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String field1; private String field2; @ManyToOne(targetEntity = MainDouble.class) @JoinColumn(name = "mid",referencedColumnName = "mid",nullable = false) private MainDouble maindouble; public MainDouble getMaindouble() { return maindouble; } public void setMaindouble(MainDouble maindouble) { this.maindouble = maindouble; } public SubDouble() { } public SubDouble(String field1, String field2) { this.field1 = field1; this.field2 = field2; } public String getField2() { return field2; } public void setField2(String field2) { this.field2 = field2; } public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }}
package com.xueyoucto.xueyou;import javax.persistence.*;/** * Created by Administrator on 2016/6/26. */@Entity@Table(name = "h3_subdouble2")public class SubDouble2 { @Id @Column(name = "sid2") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String field1; private String field2; @ManyToOne(targetEntity = MainDouble.class) @JoinTable(name = "MainDouble_SubDouble2",joinColumns = @JoinColumn(name = "sid2",referencedColumnName = "sid2",unique = true), inverseJoinColumns = @JoinColumn(name = "mid",referencedColumnName = "mid")) private MainDouble mainDouble; public SubDouble2() { } public MainDouble getMainDouble() { return mainDouble; } public void setMainDouble(MainDouble mainDouble) { this.mainDouble = mainDouble; } public SubDouble2(String field1, String field2) { this.field1 = field1; this.field2 = field2; } public String getField2() { return field2; } public void setField2(String field2) { this.field2 = field2; } public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }}
MainDouble md = new MainDouble(); md.setName("md"); md.setAge(28); session.persist(md); SubDouble sd1 = new SubDouble(); sd1.setField1("sd1filed1111"); sd1.setField2("sd2filed2222"); sd1.setMaindouble(md); session.persist(sd1); SubDouble sd2 = new SubDouble(); sd2.setField1("sd2filed11111111111"); sd2.setField2("sd2filed222222"); sd2.setMaindouble(md); SubDouble2 sd3 = new SubDouble2(); sd3.setField1("sd31111111111111"); sd3.setField2("sd32222222222222"); session.persist(sd3); sd3.setMainDouble(md); SubDouble2 sd4 = new SubDouble2(); sd4.setField1("sd31111111111111"); sd4.setField2("sd32222222222222"); session.persist(sd4); sd4.setMainDouble(md); session.persist(sd2);
运行后,数据库中的表如下图:
h3_maindouble
h3_subdouble
h3_subdouble2
maindouble_subdouble2
这两种方式,@joinColumn是通过外键的方式进行关联,而@joinTable是通过关联表进行关联的。
1 0
- hibernate——onetomany(双向)
- hibernate——onetomany(单向)
- hibernate 学习四——一对多关系(OneToMany)
- 【Hibernate】双向关联的oneTomany练习
- Hibernate学习总结:OneToMany/ManyToOne双向
- (7)onetomany双向:CURD
- (5)OneToMany单向、双向manytoone
- Hibernate 使用 Annotation 之 OneToMany(双向关联关系)
- Hibernate xml配置方法之OneToMany(双向关联关系)
- hibernate之实体@onetomany和@manytoone双向注解
- hibernate之实体@onetomany和@manytoone双向注解
- hibernate之实体@onetomany和@manytoone双向注解
- 在Hibernate中,@OneToMany单/双向外键关联
- Hibernate学习篇06——onetomany简单实例
- Hibernate学习篇08——onetomany外键非空约束
- hibernate:oneTomany
- Hibernate 中annotations(注解开发)的@OneToMany 一对多双向关联映射后,出现的jar包冲突问题
- JPA OneToMany双向关联
- MongoDB安装
- HashMap快速了解
- Socket网络编程及其通信原理
- 下拉刷新上拉加载开源控件---MaterialRefreshLayout开源控件
- Node.js 初试啼声
- hibernate——onetomany(双向)
- 机房收费(一)
- Uva1588 Kickdown
- OBIEE分析开发-使用Echarts展现地图1
- Dwr — 如何接收自定义类型的返回值
- SSO单点登录三种情况的实现方式详解
- Matlab的关系运算和逻辑运算
- Program4_R
- iOS block 内容详解