hibernate注解属性 Mappedby、cascade 的使用
来源:互联网 发布:大学生网络受骗案例 编辑:程序博客网 时间:2024/05/29 08:05
mappedBy:
1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
2>mappedBy标签一定是定义在被拥有方的,他指向拥有方;
3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的;
4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。
下面是一个例子:
人跟身份证双向关联
在Person里面定义的注解:
多了一个mappedBy这个方法,他表示什么呢?它表示当前所在表和Person的关系是定义在Person里面的idCard这个成员上面的,他表示此表是一对一关系中的从表,也就是关系是在person表中维护的,这是最重要的。Person表是关系的维护者,有主导权,它有个外键指向IDCard。
我们也可以让主导权在IDCard上面,也就是让他产生一个指向Person的外键,这也是可以的,但是最好让Person来维护整个关系,这样更符合我们的思维。
1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
2>mappedBy标签一定是定义在被拥有方的,他指向拥有方;
3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的;
4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。
下面是一个例子:
人跟身份证双向关联
在Person里面定义的注解:
- @OneToOne(cascade = CascadeTye.ALL,optional = true)
- public IDCard getIdCard(){
- return idCard;
- }
- @OneToOne(cascade = CascadeType.ALL,mappedBy = "idCard",optional = false)
- public Person getPerson(){
- return person;
- }
多了一个mappedBy这个方法,他表示什么呢?它表示当前所在表和Person的关系是定义在Person里面的idCard这个成员上面的,他表示此表是一对一关系中的从表,也就是关系是在person表中维护的,这是最重要的。Person表是关系的维护者,有主导权,它有个外键指向IDCard。
我们也可以让主导权在IDCard上面,也就是让他产生一个指向Person的外键,这也是可以的,但是最好让Person来维护整个关系,这样更符合我们的思维。
我们也可以看到在Person里面的IDCard是注释optional=true,也就是说一个人是可以没有身份证的,但是一个身份证是不可以没有人的,所以在IDCard里面注释Person的时候,optional=false了,这样就可以防止一个空的身份证记录进数据库。
cascade属性的可能值有 all: 所有情况下均进行关联操作,即save-update和delete。 none: 所有情况下均不进行关联操作。这是默认值。 save-update: 在执行save/update/saveOrUpdate时进行关联操作。 delete: 在执行delete 时进行关联操作。 all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,此book即成为孤儿节点。
1 0
- hibernate注解属性 Mappedby、cascade 的使用
- Hibernate 注解的mappedby属性
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate注解属性mappedby的详解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate的注解属性mappedBy详解
- hibernate注解属性cascade
- hibernate的注解属性mappedBy详解
- hibernate的cascade属性
- Hibernate的cascade属性
- hibernate的cascade属性
- 【Hibernate】的cascade属性
- Hibernate中Many的属性mappedBy小结
- hibernate mappedBy属性详解!
- Hibernate中使用JPA注解@OneToMany的cascade级联标签
- MySQL分库分表的技巧
- kinect+Unity 开发包详解一
- Material Design之Snackbar
- td 设置colspan之后设置td width 无效
- 内部医护揭秘莆田系医院
- hibernate注解属性 Mappedby、cascade 的使用
- Python——time模块&datetime模块
- IDA使用之旅(二)工具及窗口的使用
- 加上事务aop后项目启动报错解决方法参考
- jquery 验证身份证 验证邮箱 正则表达式
- 毕业设计ASP.NET、Visual C#、Visual Basic、android,VB.NET、JSP、j2ee,Sql等
- 为什么一个RadioGroup增加子元素,循环不错误,不循环就错位
- 某软件研发项目之需求调研篇
- Windows 使用Eclipse配置连接hadoop,编译运行MapReduce --本地调试WordCount