微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hibernate双向多对多映射关系配置代码实例

这篇文章主要介绍了Hibernate双向多对多映射关系配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、实体类

package com.yl.bean; import java.io.Serializable; import java.util.Set; /** * 商品实体类 */ public class Goods implements Serializable { private Integer id;//商品id private String goodsName;//商品名 private Double price;//商品价格 private String remark;//备注 private Set orderSet;//商品所属订单 public Goods() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public Set getorderSet() { return orderSet; } public void setorderSet(Set orderSet) { this.orderSet = orderSet; } @Override public String toString() { return "Goods{" + "goods_id=" + id + ", goodsName='" + goodsName + ''' + ", price=" + price + ", remark='" + remark + ''' + ", orderSet=" + orderSet + '}'; } }

package com.yl.bean; import java.io.Serializable; import java.util.Set; /** * 商品订单实体类 */ public class GoodsOrder implements Serializable { private Integer id;//订单id private String orderNo;//订单编号 private Double price;//订单价格 private Set goodsSet;//订单包含的商品 public GoodsOrder() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getorderNo() { return orderNo; } public void setorderNo(String orderNo) { this.orderNo = orderNo; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public Set getGoodsSet() { return goodsSet; } public void setGoodsSet(Set goodsSet) { this.goodsSet = goodsSet; } @Override public String toString() { return "GoodsOrder{" + "id=" + id + ", orderNo='" + orderNo + ''' + ", price=" + price + ", goodsSet=" + goodsSet + '}'; } }

2、全局配置文件(hibernate.cfg.xml)

com.MysqL.cj.jdbc.Driverjdbc:MysqL://localhost:3306/hibernate?characterEncoding=utf8&serverTimezone=GMT%2B8root123456trueupdate

3、商品类映射配置文件(Goods.hbm.xml)

4、订单类映射配置文件(GoodsOrder.hbm.xml)

5、测试

@Test public void addtest(){ Session session= HibernateUtils.getSession(); Goods goods=new Goods(); goods.setGoodsName("小米"); goods.setPrice(3999.0); goods.setRemark("为发烧而生"); Goods goods1=new Goods(); goods1.setRemark("中华有为"); goods1.setPrice(3999.0); goods1.setGoodsName("华为"); GoodsOrder order=new GoodsOrder(); order.setorderNo("001"); order.setPrice(7998.0); GoodsOrder order1=new GoodsOrder(); order1.setorderNo("002"); order1.setPrice(7998.0); Set orderSet=new HashSet(); orderSet.add(order); orderSet.add(order1); goods.setorderSet(orderSet); goods1.setorderSet(orderSet); /* Set orderSet1=new HashSet(); orderSet1.add(order1); goods1.setorderSet(orderSet1);*/ Set goodsSet=new HashSet(); goodsSet.add(goods); goodsSet.add(goods1); //注意这里,只需要一方关联即可(上面已经关联了,所以不需要再次添加商品集合),两方关联会造成主键重复,报错 // order.setGoodsSet(goodsSet); // order1.setGoodsSet(goodsSet); Transaction transaction=session.beginTransaction(); session.save(goods); session.save(goods1); session.save(order); session.save(order1); transaction.commit(); session.close(); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐