spring boot jpa中關聯表的使用
本文中,我們會將會通過乙個book和category的關聯關係,來講解如何在jpa中使用。
我們還是使用h2記憶體資料庫來做測試:
>
>
org.springframework.bootgroupid
>
>
spring-boot-starter-data-jpaartifactid
>
dependency
>
>
>
com.h2databasegroupid
>
>
h2artifactid
>
>
runtimescope
>
dependency
>
下面我們構建兩個entity:
@data
@entity
public
class
book
@data
@entity
public
class
category
上面我們定義了兩個entity,category和book是一對多的關係。我們通過@manytoone和@onetomany來定義相應的關係。
我們接下來構建相應的repository:
public
inte***ce
bookrepository
extends
crudrepository
public
inte***ce
categoryrepository
extends
crudrepository
為了方便測試,我們先構建需要的資料schema.sql和data.sql:
create
table book (
id bigint
notnull
auto_increment
, title varchar
(128
)not
null
, category_id bigint
,primary
key(id));
create
table category (
id bigint
notnull
auto_increment
, name varchar
(128
)not
null
,primary
key(id)
);
insert
into book(id,title,category_id)
values(1
,'the hobbit',1
);insert
into book(id,title,category_id)
values(2
,'the rabbit',1
);insert
into category(id,name)
values(1
,'category'
);
我們看一下怎麼從book中刪除一條資料:
@test
public
void
whendeletebyidfromrepository_thendeletingshouldbesuccessful()
再看一下category的刪除:
@test
public
void
whendeletingcategories_thenbooksshouldalsobedeleted()
再看一下book的刪除:
@test
public
void
whendeletingbooks_thencategoriesshouldalsobedeleted()
因為我們只在category中指定了cascade = cascadetype.all, 所以刪除category的時候可以刪除相關聯的book,但是刪除book的時候不會刪除相關聯的category。
本文的例子可以參考
Spring Boot JPA 命名規則
一 常用規則速查 1 and 並且 2 or 或 3 is,equals 等於 4 between 兩者之間 5 lessthan 小於 6 lessthanequal 小於等於 7 greaterthan 大於 8 greaterthanequal 大於等於 9 after 之後 時間 10 be...
SpringBoot JPA常用註解
就像 table註解用來標識實體類與資料表的對應關係類似,column註解來標識實體類中屬性與資料表中字段的對應關係。column name broker id columndefinition bigint 11 nullable false private long brokerid id co...
Spring Boot JPA訪問Mysql示例
上篇演示了通過m en構建spring boot 專案,引用web模組啟動應用,完成簡單的web 應用訪問,本章內容在此基礎上面加入資料訪問與埠修改,下文 與演例 本用例純手工測試通過,放心入坑 修改預設埠 在src main resources下加入application.properties內容...