当我们因业务需求需要建立连表关系时,也常常伴随着级联操作的需求,本文以最简单的业务为例,阐述如何优雅、高效地实现这一需求
现在我们假设有两个表,Student和Class,也就是学生和班级两个表。
Students中需要包含
| name |
desc |
note |
|---|---|---|
| id | primer key | |
| name | student's name | unique |
Classes中需要包含
| name |
desc |
note |
|---|---|---|
| id | primer key | |
| manager | manager's name | unique |
显然,Classes表是主表,Students表是从表,对于这两个表的操作的主动权在Classes表中
也就是说,我们希望,当我们新增一个班级时,也能自动地新增这个班级里的学生。当我们删除这个班级时,这个班里的学生也要被删除。
使用Spring Data JPA之后,这一操作变得简单起来,无需SQL,仅仅需要在PO(persistent object)的属性上添加合适的注解即可。
然后来建立DAO
十分简单,DAO中什么也不用写,只要继承个接口,然后指定entity和数据表主键的类型就好。
如此,我们就配置成功了,我们来个测试类测试一下
可见,数据已经按我们的需要插入到了MySQL中
Spring Data JPA 的连表操作简单易用,不过要想用好JPA,这其中还有很多门道。
接下来的一段时间内,我将陆续发布关于JPA 的一些博文。