基于hibernate的单向一对多,多对一,双向一对多

来自书本ssh整合框架的开发。假设学生和分数是一对多的关系。

         分数到学生是单向多对一关联。在分数类上有个学生的类的成员属性。画图时:分数表指向学生表。N:1。(以*表示N)

书中没有配置级联属性。

          学生到分数的关联是单向一对多关联。画图时:学生表指向分数表,1:N。学生有个set<分数>成员属性。书中说更新学生记录时,出现n条sql更新分数,不推荐使用这种方式。

         基于外键的单向一对一关联,多对一上添加unique,唯一性约束。

          基于主键的单向一对一关联。从分数到学生,在分数上添加学生成员类属性,学生类不添加分数的成员属性了。分数的id配置为foreign。

          双向一对一关联。在学生配置文件添加级联,表示控制方的信息修和删,影响到非控制方。在分数配置了fetch="select"。

          双向多对一关联。学生配置文件中,一对多,有级联和inverse=true;表示关系的维护是主控方(一方)维护;受控方(多方)分数维护;也就是分数的stu_id由谁来控制。inverse默认为false,表示是学生表控制;inverse=true,表示是分数去控制。这里是修改分数记录影响学生记录。我觉得,按照书中的说法,false由一方维护,在删除一方时,会自动删除多方。书中推荐使用true,也就是多方维护,这样直观。

       在MyEclipse自动生成的配置文件中,使用inverse=true;好像没级联,需要手动删除多方级联。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值