hibernqte积累知识点.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernqte积累知识点

设置外键 group:id,name student:id,name,g_id 想让哪方有外键就把@JoinColum(name=外键名称/即:主表id)注解在哪方(即:从表中) private Student 引用名;//省略get,set方法 在getter方法上面进行注解@manytoone @joinColumn(name=) 2.设置级联属性 在拥有外键的表(即student实体中)对应的实体的一端书写cascade=CascadeType.ALL属性,然后进行session.seve(student)时,就可以进行级联,而不必须去关心另一个实体的cascade=CascadeType.ALL属性 3 一对多: 只有一对多是把joincolumn写在多的一方,其他一对一或者多对多可以随便写 3. 多对多: 1.cascade=CascadeType.ALL级联属性和joincolumn要写在同一个类中,但是不能写joincolumn,不能写joincolumn,只能写jointable Eg:@JoinTable(name=t_s, joinColumns={@JoinColumn(name=s_id)}, inverseJoinColumns={@JoinColumn(name=t_id)} )15:24 2012/3/13 5.目前,持久化规范要求多的一方为关系维护端,一的一方为关系被维护端,可以再one方的@onetomany注释设置mappedBy属性,以指定它是这一关联关系的被维护端,many方为关系维护端。 mappedBy的功能为:不用再在这方再重新建立连接,一切遵从另一方,这样可避免冗余 关于mappedBy的含义: 1.只有onetoone,onetomany,manytomany上才有mappedBy属性,manytoone不存在该属性。 2.mappedBy标签一定是定义在the owned side(mappedBy为被拥有方。被拥有方的),他指向the owning side(拥有方)。 3.mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系 当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的 4.mappedBy跟joincolumn、jointable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方 。mappedBy这方定义的joincolumn/jointable总是失效的,不会建立对应的字段或表。 6. 1.拥有外键的是主表,主表里面有一个字段指向从表里面的主键,所以删除时只能删除主表(student),才能删除从表(group),不然从表不能删除。 2.一对一关联可能是双向的.在双向关联中, 有且仅有一端是作为主体(owner)端存在的:主体端负责维护联接列(即更新). 对于不需要维护这种关系的从表则通过mappedBy属性进行声明. mappedBy的值指向主体的关联属性. 在上面这个例子中,mappedBy的值为 wf.最后,不必也不能再在被关联端(owned side)定义这列了,因为已经在主体端进行了声明. 4.如果在主体没有声明@JoinColumn,指定外键的名称,则系统自动进行处理: 在主表(owner table)中将创建联接列, 列名为:主体的关联属性名+下划线+被关联端的主键列名. 9.mappedBy的功能为:不用再在这方再重新建立连接,一切遵从另一方,这样可避免冗余 (1).设置外键 想让哪方有外键就把@JoinColum(name=外键名称/即:主表id)注解在哪方(即:从表中) private 主表类名 引用名;//省略get,set方法 在get方法上面进行注解@manytoone @joinColumn (2).设置级联操作方 级联来保存多方数据,你想通过哪方来保存数据,则在哪方处理关联关系, 并设置cascadeType=CascadeType.ALL 和 fetch=FetchType.Lazy (3)@JoinColum cascadeType=CascadeType.ALL 和 fetch=FetchType.Lazy 三者在一起 ------有外键,从表 mappedBy(name=) ------主表 mappedBy(name=) 与 @JoinColum 不能放在一起,即:分别放在有关系的两个实体中 (4) /* * 级联保存 * * 想通过哪方来级联保存数据,则在哪方设置关联关系,并设置级联 * * 在stu

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档