- 浏览: 1193295 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (434)
- js (20)
- struts2 (77)
- spring (11)
- hibernate (17)
- ssh整合 (9)
- 程序例子 (4)
- 正则表达式 (8)
- JSP (20)
- IDE (15)
- 数据库 (10)
- 工作经验技巧感悟 (21)
- 程序员的幽默 (4)
- windows设置 (4)
- 名词解释 (4)
- 技术入门 (4)
- jFreeChart (16)
- OGNL (5)
- java基础 (46)
- dwr (4)
- portal (1)
- 示例用到的附件 (0)
- 优秀程序员45个习惯 (1)
- webService (1)
- shell (3)
- ibatis (3)
- 开发工具 (1)
- OS (3)
- xmlbean (2)
- design_pattern (0)
- error (1)
- testng (2)
- python (18)
- hadoop (21)
- mapreduce (9)
- Hive (0)
- HBase (0)
- ubuntu (22)
- 多线程 (7)
- 自我改进 (6)
- 设计模式 (1)
- ssh (2)
- ant (4)
- guake (2)
- 云计算 (9)
- hdfs (3)
- 大数据 (1)
- 电信业务 (1)
- maven (2)
- svn (5)
- UML (1)
- 待处理问题 (2)
- log4j (1)
- css (1)
- LevelDb (0)
- thrift (6)
- 辅助工具 (3)
- 算法 (1)
- tornado (0)
- twisted (1)
- jvm (0)
- 图书 (1)
- 其他 (1)
- oracle (2)
- mvn (1)
- 私人信息 (0)
- nio (1)
- zookeeper (1)
- JavaIO (3)
- mongodb (1)
- java-高级 (6)
- spring-深入 (1)
- tomcat (1)
- quartz (1)
- 面试题 (1)
- redis (3)
- EJBCA (0)
- spring-3.0 (1)
- memcache (3)
- 性能检测 (1)
- android (0)
- 开源项目 (1)
- 将博客搬至CSDN (0)
- 架构之路 (1)
最新评论
-
pjwqq:
“子类对象”都拥有了“父类对象的一个实例的引用”我晕,应该是“ ...
java继承--父类属性的存放位置 -
gwgyk:
关于楼主最后的问题,我想可能是这样:InputFormat默认 ...
eclipse 运行hadoop wordcount -
fanjf:
上述7点基本具备,可惜现在因为项目需要,做管理方面工作!
如何判断自己是否具有成为一名优秀程序员的潜质 -
摸爬滚打NO1:
链接已经失效
Eclipse添加JSEclipse 插件(js插件) -
younglibin:
看了以上7条, 自己 也不知道是否能够对上, 感觉没一点都有那 ...
如何判断自己是否具有成为一名优秀程序员的潜质
N-----N
column(可选): 这个元素的外键关键字段名
formula (可选): 用于计算元素外键值的SQL公式.
class (必需): 关联类的名称
outer-join (可选 - 默认为auto): 在Hibernate系统参数中hibernate.use_outer_join被打开的情况下,该参数用来允许使用outer join来载入此集合的数据。
为此关联打开外连接抓取或者后续select抓取。这是特殊情况;对于一个实体及其指向其他实体的多对多关联进全预先抓取(使用一条单独的SELECT),你不仅需要对集合自身打开join,也需要对<many-to-many>这个内嵌元素打开此属性。
对外键字段允许DDL生成的时候生成一个惟一约束。这使关联变成了一个高效的一对多关联。(此句存疑:原文为This makes the association multiplicity effectively one to many.)
not-found (可选 - 默认为 exception): 指明引用的外键中缺少某些行该如何处理: ignore 会把缺失的行作为一个空引用处理。
entity-name (可选): 被关联的类的实体名,作为class的替代。
property-ref: (可选) 被关联到此外键(foreign key)的类中的对应属性的名字。若未指定,使用被关联类的主键。
单向N——N关联:
N——N关联必须使用连接表,N——N关联与有表连接的1——N关联非常相似,只要去掉many-to-many 元素的unique=“true”属性即可;
eg:
<!-- 映射集合属性,集合元素是其他持久化实体
指定连接表的表名-->
<set name="addresses" table="person_address">
<!-- 指定连接表中参照本表记录的外键列名 -->
<key column="person_id" />
<!-- 使用many-to-many来映射1-N关联,
增加unique="true" -->
<many-to-many class="Address"/>
</set>
双向N——N关联:
双向N——N关联需要两端都使用Set集合属性,两端都增加对集合属性的访问,双向N——N关联没有太多选择只能使用连接表建立两个实体之间的关联关系;
Preson.java
//N-N关联关系,使用Set来保存关联实体
private Set<Address> addresses
= new HashSet<Address>();
Address.java:
//N-N关联关系,使用Set来保存关联实体
private Set<Person> persons
= new HashSet<Person>();
Preson.hbm.xml:
<!-- 映射集合属性,集合元素是其他持久化实体
没有指定cascade属性 -->
<set name="addresses" inverse="true"
table="person_address">
<!-- 指定关联的外键列 -->
<key column="person_id"/>
<!-- 用以映射关联类属性 -->
<many-to-many class="Address"
column="address_id"/>
</set>
Address.hbm.xml:
<!-- 映射集合属性,集合元素是其他持久化实体
没有指定cascade属性 -->
<set name="persons" table="person_address">
<!-- 指定关联的外键列 -->
<key column="address_id"/>
<!-- 用以映射关联类属性 -->
<many-to-many class="Person"
column="person_id"/>
</set>
双向N——N关联的两边都需要指定连接表的表名,外键列的列名:
两个set元素table必须指定,并且必须相同,
set元素的两个字元素:key和many-to-many都必须指定column属性,key和many-to-many分别制定本持久化类,关联类在连接表中的外键列名,因此两边的key与many-to-many的column属性交叉相同,
发表评论
-
hibernate 无主键 多表连接 更新数据
2009-12-23 15:23 2210今天遇到一个问题: 客户给了我 3张表; 这三张表 分别是从 ... -
hibernate 没有id属性 怎么更新数据
2009-12-23 14:39 3997今天用hibernate 查了几个 ... -
Hibernate的各种保存方式的区别
2009-10-23 10:03 979hibernate对于对象的保存提供了太多的方法,他们之间有很 ... -
hibernate继承映射
2009-09-05 11:13 1961A、采用subclass元素的继承映射: 采用这种方 ... -
hibernate映射文件one-to-many元素属性
2009-09-04 17:18 3557单向1——N关联关系的持久化类发生了改变,持久化类里需要使用集 ... -
hibernate映射集合属性
2009-09-02 15:43 1474hibernate映射集合属性通 ... -
hibernate中控制Insert 和 Update 语句的映射属性
2009-08-31 09:36 2921控制Insert 和 Update 语句的映射属性<pr ... -
hibernate映射文件property 元素属性
2009-08-31 08:49 3165property 元素 name:映射类属性的名字 ... -
hibernate映射文件many-to-one 元素属性
2009-08-31 08:48 3744many-to-one 元素 属性: name ... -
hibernate映射文件one-to-one 元素属性
2009-08-31 08:47 5795one-to-one 元素 属性: name:映射类 ... -
hibernate映射文件set 元素属性
2009-08-31 08:46 1896set 元素 属性: name:映射类属性的名字 ac ... -
hibernate映射文件id元素属性详解
2009-08-31 08:45 1475id 元素 属性: name: ... -
hibernate映射文件一级子元素详解
2009-08-31 08:44 1540子元素: meta:设置类或属性的元数据属性 subsel ... -
hibernate映射文件class元素属性详解
2009-08-31 08:42 1805class元素 属性: name:持久化类的全名 ta ... -
hibernate映射文件一级子元素属性详解
2009-08-31 08:42 800一级子元素: meta:用于设置类或属性的元数据属性 ty ... -
hibernate映射文件根元素属性详解
2009-08-31 08:40 1138根元素hibernate-mapping 属性: sche ...
相关推荐
NULL 博文链接:https://xiangtui.iteye.com/blog/680938
今天小编就为大家分享一篇关于Hibernate实现many-to-many的映射关系,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
本程序包含: hibenate 上传图片,二进制数据,大文本,集合映射的多种关系,onetoone,ontomany,manytomany等关系详细代码示例以及注释,全部由本人测试通过,对理解hibernate配置有极大帮助。
hibernate开发的关系: one-to-one,many-to-one,many-to-many学习经验总结
NULL 博文链接:https://yinxiaoyong.iteye.com/blog/426752
Hibernate 集合映射:基于HashMap多对多映射 代码,代码出处:http://www.itneng.com/thread-3713-1-1.html
Hibernate映射的基本操作 one-to-many one-to-one的使用等
说明了hibernate one-to-many
hibernate中many2many映射,可以看看具体是怎么配置的。使用的是mysql数据库,通过映射文件盒domain对象自动生成数据库
<many-to-one name="group" column="groupid" cascade="all"/> --> <many-to-one name="group" column="groupid"/> </hibernate-mapping> <hibernate-mapping> <class name="com.bjsxt.hibernate.Group...
针对hibernate关系映射进行了一个总结,包含xml配置形式和@注解配置形式,one-to-many,one-to-noe,many-to-one,many-to-many等单方向的配置和双方都配置的事例
Company与Employee类之间为一对多多态关联关系,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么就能映射Company类的employees集合。...many-to-onename="a"class="ClassA"column="A_ID"cascade="s
多对多双向关联 <br>注意映射规则: <set name="roles" table="t_user_role"><br> <key column="userid"/><br> <many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/><br> </set><br><br>table...
该示例包含了基于XML和Annotation的Hibernate配置,涵盖了one-to-one、one-to-many、many-to-many映射关系的配置,并提供了独立的测试用例。适合用于学习和实践Java和Hibernate技术,以及开发基于MySQL的数据持久化...
使用MySql示例的带有Hibernate的Spring Data JPA 该项目使用MySql Example描述了带有Spring Data JPA和Hibernate的Spring Boot示例。 描述 该项目显示了存储在MySql数据库中的用户列表。 使用以下端点,可以实现...
020 <one-to-one>、<many-to-one>单端关联上的 lazy(懒加载)属性 021 继承关联映射 022 component(组件)关联映射 023 复合主键 关联映射 024 其它 关联映射 025 hibernate 悲观锁、乐观锁 026 hibernate 操作树形...
hibernate中one2many映射,使用映射文件和domain对象,自动生成数据库,使用的数据库是mysql,关键是配置文件是怎么配置的
one-to-one,many-to-many,many-to-on
NULL 博文链接:https://chen-rojer-gmail-com.iteye.com/blog/696471
以下是这个例子的Hibernate映射文件: <component name="Name" class="eg.Name"> <!-- class attribute optional --> 人员(Person)表中将包括pid, birthday, initial, first和 last等字段...