Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之二)
来源:互联网 发布:org.apache.poi jar包 编辑:程序博客网 时间:2024/06/04 18:37
Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之二)
hibernate反对多对多关联的使用,因为联结表中的额外列通常是不可能避免的。如果联结表有一些额外的列,而不只是两个外键列时,该怎么办?我们可以用一对多模拟多对多的关系。可以用两种常用的策略把这样一种结构映射到java类。第一种策略需要一个用于联结表的中间实体类,并通过一对多的关联而被映射。第二种策略通过给联结表使用一个值类型的类来利用组件的集合。
我们实现第二个策略:把联结表映射到组件的集合
pom.xml:
resources/hibernate.cfg.xml:
pojo/Teacher.java:
pojo/Teacher.hbm.xml:
pojo/Student.java:
pojo/Student.hbm.xml:
pojo/MyClass.java:
util/HibernateUtil.java:
util/Manager.java:
表结构:
输出sql:
要解除链接,就从集合中移除该元素。不需要额外的级联设置,如:
t.getMyClassList().add(my);
t.getMyClassList().remove(my);
注意:这种方法的缺点在于无法启用双向导航:根据定义,组件不可能有共享的引用。现在t可以导航到my,但s不可能做到,s不并知道my.但是,你可以编写一个查询来获取所需的对象。
这个例子是用bag实现的,使用set也可以实现。但不确定map,list是否可以,没测试!!!!!
- Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之二)
- Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之一)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,使用bag)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,使用list)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,使用set)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,使用map)
- Hibernate高级实体关联映射之多值的实体关联(实体类实现三重关联)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,利用联结表,set例)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,利用联结表,bag例)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,利用联结表,idbag例)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,利用联结表,list例)
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,利用联结表,map例)
- Hibernate高级实体关联映射之多值的实体关联(map实现三重关联,单向导航)
- Hibernate高级实体关联映射之单值的实体关联(共享的主键关联)
- Hibernate高级实体关联映射之单值的实体关联(一对一的外键关联)
- Hibernate高级实体关联映射之多值的实体关联(用组件类实现三重关联,单向导航)
- Hibernate高级实体关联映射之单值的实体关联(用联结表映射)
- JPA实体的映射之 一对多关联映射 和 多对一关联映射
- The NOTE of learning ASP.NET [9] .NET的基本数据类型及其常用方法
- 动态调用DLL
- 零碎(1)
- UMIP程序中碰到的问题
- 软件架构之美 - 软件工程&架构
- Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之二)
- word2003里插入符号和特殊符号的加载
- ubuntu 使用gspca安装摄像头
- linux gspca usb摄像头驱动添加对新型号的详细移植步骤
- 无线网络摄像头Linux 下摄像头驱动支持情况
- 第一章 C语言概论
- zc301摄像头驱动以及在S3C2410中使用serfox和spcaview
- nginx-0.8.38源码探秘(六)
- 摄像头(WebCam)在Linux中采用Spcaserv 架设网络视频服务器 (v0.1b)