2018-4-16 日志记录(双向多对多)

原创 2018年04月16日 21:40:41

今日工作:今日完成了Hibernate多对多的映射关系,从xml的配置到注解的配置,对单、双向的N-N

有了新的认识,特别是维护数据的时候,不能双方都维护,应该交给另一方维护,不然会数据冲突。

解决:在进行双向N-N的配置的时候,在配置

 @JoinTable( // 配置中间表的属性,表名和关联的两个实体的列明

              name="Catogory_Item",
               joinColumns=@JoinColumn(name="Category_ID"),
     inverseJoinColumns=@JoinColumn(name="Item_ID"))

的一方进行了,mappeBy的属性的配置,导致属性冲突,一直会提示出错。

解决问题:

/**
 * 分类信息
 * @author tianliangge
 *
 */
@Entity
public class Category {

     @Id
     @GenericGenerator(name="categoryId", strategy="native")
     @GeneratedValue(generator="categoryId")
     private Integer id;
     private String name;
     @ManyToMany // 特别注意的是:这里不能设置mappeBy的属性了,和JointTable发生冲突
                 // 在3.5版本以后,基本上不能共存了,需要在另一个表中设置反转的控制
     @JoinTable( // 配置中间表的属性,表名和关联的两个实体的列明

              name="Catogory_Item",
               joinColumns=@JoinColumn(name="Category_ID"),
     inverseJoinColumns=@JoinColumn(name="Item_ID"))
     private Set<Item> items = new HashSet<>();
     // getter、setter略  
}

/**
 * 项目
 * @author tianliangge
 *
 */
@Entity
public class Item {

     @Id
     @GenericGenerator(name="itemId", strategy="native")
     @GeneratedValue(generator="itemId")
     private Integer id;
     private String name;
     @ManyToMany(mappedBy="items") // 设置反转,自己放弃维护关系
     private Set<Category> categories = new HashSet<>();
    // getter、setter略  
}


特别注意:只能在没有@JoinTable注解的一方方进行MappedBy配置,否则会和@JoinTable冲突。


明日计划:明日进行仓库表的改进,开始把DAO层改成对Hibernate的支持。


Hibernate入门到精通2017视频教程

本课程共25讲,课程课件,上课源代码等资料购买后可以直接下载,该课程是在学习完JSP,Struts2课程后,SSH框架的第二部分,后续还有Spring课程及3大框架的整合
  • 2017年06月06日 16:19

多对多单向,多对多双向

多对多单向 Teacher类中 @ManyToMany @JoinTable(name="student_teacher",//中间表名 joinColumns=@JoinColumn(nam...
  • hurahura
  • hurahura
  • 2016-07-28 20:35:13
  • 930

Hibernate的多对多关联关系(单向和双向)

n-n(多对多)的关联关系必须通过连接表实现。下面以商品种类和商品之间的关系,即一个商品种类下面可以有多种商品,一种商品又可以属于多个商品种类,分别介绍单向的n-n关联关系和双向的n-n关联关系。单向...
  • xiangwanpeng
  • xiangwanpeng
  • 2016-12-06 20:14:00
  • 759

hibernate双向多对多关联映射(注解版)

  • 2017年05月07日 17:41
  • 16KB
  • 下载

jpa双向多对多关系

现在好多程序员用hibernate一两年有些问题还是弄不明白,这倒也不是什么稀罕事,hibernate东西太多了吃不透也特别正常,看过这篇文章我相信对jpa或hibernate的理解会更进一步。...
  • chenwill3
  • chenwill3
  • 2014-09-08 10:40:39
  • 4261

hibernate关系映射--双向多对多@ManyToMany

1.双向多对多也只能采用连接表的形式建立两个实体的关联关系 2.双向多对多关系两段都需要使用@ManyToMany,@JoinTable。如果希望某一端放弃控制关联关系,则要用mappedBy属性,...
  • muyeju
  • muyeju
  • 2015-08-23 15:40:08
  • 1002

JPA学习笔记(10)——映射双向多对多关联关系

多对多关联比如现在有两个实体类:1. Product(商品)2. Category(类别)一个商品可以有多个类别,一个类别也可以有多个商品,这就形成了多对多的关系Productpackage com....
  • u010837612
  • u010837612
  • 2015-08-20 15:50:11
  • 3177

hibernate各种映射关系祥解

  • 2008年10月07日 13:29
  • 37KB
  • 下载

【hibernate框架】多对多双向关联(XML实现)

多对多的双向关联:(非常少用) 通过老师可以知道他教了多少学生,这是单项多对多。而如果同时通过学生知道有多少个老师教他,那么就是多对多双向的关联。 XML实现: Student.java...
  • u013517797
  • u013517797
  • 2015-02-13 15:44:54
  • 1070
收藏助手
不良信息举报
您举报文章:2018-4-16 日志记录(双向多对多)
举报原因:
原因补充:

(最多只允许输入30个字)