Hibernate单向关联N-N
来源:互联网 发布:linux下路由跟踪命令 编辑:程序博客网 时间:2024/05/22 06:57
单向N-N关联必须使用连接表。
Company实体:
package com.ydoing.hibernate5;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;import javax.persistence.Table;@Entity@Table(name = "company_inf")public class Company { @Id @Column(name = "company_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; @ManyToMany(targetEntity = Product.class, cascade = CascadeType.ALL) @JoinTable(name = "company_product", joinColumns = @JoinColumn(name = "company_id", referencedColumnName = "company_id"), inverseJoinColumns = @JoinColumn(name = "product_id", referencedColumnName = "product_id")) private Set<Product> products = new HashSet<>(); public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Product> getProducts() { return products; } public void setProducts(Set<Product> products) { this.products = products; }}
Product实体:
package com.ydoing.hibernate5;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "product_inf")public class Product { @Id @Column(name = "product_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
Console输出:
Hibernate: insert into company_inf (name) values (?)Hibernate: select last_insert_id()Hibernate: insert into product_inf (name) values (?)Hibernate: select last_insert_id()Hibernate: insert into product_inf (name) values (?)Hibernate: select last_insert_id()Hibernate: insert into company_product (company_id, product_id) values (?, ?)Hibernate: insert into company_product (company_id, product_id) values (?, ?)
从输出不难看出,Hibernate创建了连接表company_product。
数据库表:
1 0
- Hibernate单向关联N-N
- Hibernate单向关联N-1
- Hibernate单向关联1-N
- Hibernate 单向N-1关联
- Hibernate的关联映射(4)-单向N-N关联
- Hibernate的单向1-N关联(三)
- hibernate 单向 n-n
- Hibernate学习随笔-----关系映射(4)单向N-N关联
- Hibernate的单向N-N关联(四)
- 【hibernate】关联映射那些事(二)--单向1-N映射和单向N-N映射
- Hibernate的关联映射(1)-单向N-1关联
- Hibernate的关联映射(3)-单向1-N关联
- 【hibernate】关联映射那些事(一)---单向N-1关联与单向1-1关联
- Hibernate单向1-N关联的简单示例
- Hibernate学习随笔-----关系映射(1)单向N-1关联
- Hibernate学习随笔-----关系映射(3)单向1-N关联
- Hibernate关联关系之——单向n-1
- Hibernate的单向N-1关联(一)
- poj1306+double就够了不过以后double用%lf
- Mybatis学习笔记-一级缓存
- Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法
- hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】
- uva10820(欧拉函数)
- Hibernate单向关联N-N
- 【DP】poj1692
- HDU 1081 To The Max
- SAP系统硬件解决方案
- Hie with the Pie
- poj-1961 Period
- PKI(公钥基础设施)基础知识笔记
- Linux内核线程之父pid=2的kthreadd线程
- 抗锯齿方法两种(其一:paint.setAntiAlias(ture);paint.setBitmapFilter(true))