孙卫琴的《精通JPA与Hibernate》的读书笔记:用@ManyToMany注解映射双向关联
16lz
2021-05-05
假定建立了从Category(商品类别)类和Item(商品)类的双向多对多关联。在Category类中需要定义集合类型的items属性,并且在Item类也需要定义集合类型的categories属性。下图显示了Category类和Item类的关联关系。
下图显示了CATEGORIES表、ITEMS表和CATEGORY_ITEM表的结构。
在Category类中,映射items属性的代码如下所示:
@ManyToMany(cascade=CascadeType.PERSIST)@JoinTable( name="CATEGORY_ITEM", joinColumns=@JoinColumn(name="CATEGORY_ID"), inverseJoinColumns=@JoinColumn(name="ITEM_ID"))private Set<Item> items=new HashSet<Item>();
在Item类中,映射categories属性的代码如下所示:
@ManyToMany(mappedBy="items")private Set<Category> categories=new HashSet<Category>();
对于双向多对多关联关系中,需要把一方设为被动方。在本范例中,Item类是被动方,它的@ManyToMany注解设置了mappedBy属性。
在BusinessService类中,同时建立了从Category到Item,以及从Item到Category的关联关系:
Item item1=new Item("NEC500",1000);Item item2=new Item("BELL4560",1800);Category category1=new Category();category1.setName("CellPhone");//建立Category和Item的双向关联关系category1.getItems().add(item1);category1.getItems().add(item2);item1.getCategories().add(category1);item2.getCategories().add(category1);
下图显示了以上程序建立的Category对象与Item对象的关联关系。
©著作权归作者所有:来自51CTO博客作者孙卫琴的原创作品,如需转载,请注明出处,否则将追究法律责任每一份赞赏源于懂得
赞赏
0人进行了赞赏支持
更多相关文章
- 小白前端入门笔记(10),怎么设置网站内部的超链接?
- 把一个"结构体"当做属性后碰到的问题
- 实例演示,v-if,v-for,v-model,v-bind,v-on,计算属性和侦听器属性
- 使用 IntraWeb (20) - 基本控件之 TIWGrid
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找
- CSS样式规则-CSS结构的特点
- css详解background八大属性及其含义
- css详解position五种属性用法及其含义