SpringDataJPA學習筆記

2021-09-29 21:00:46 字數 2426 閱讀 1208

目錄

1.實體類上

2.dao層

3.jpa命名查詢

案例:recruitservice

recruitdao 

4.jpa的@query註解查詢用法

problemdao

@query進行修改

articleservice

articledao

@entity 用於實體類之上,與@table(name="tablename")一起使用,將實體類對映資料庫

@id用於表id欄位,單錶用乙個@id,中間表聯合主鍵,都需要標上@id,在實體類上還要標明@idclass(pl.class)  

例子:@column用於字段,預設資料庫欄位名和實體類變數名一致時可以不加

/**

* 問題標籤中間表實體

*/@entity

@table(name = "tb_pl")

@idclass(pl.class) // @idclass: @id屬性所在的類

public class pl implements serializable

public void setproblemid(string problemid)

public string getlabelid()

public void setlabelid(string labelid)

}

實現jparepository,jpaspecificationexecutor

/**

* 資料訪問介面

* @author administrator

* */

public inte***ce articledao extends jparepository,jpaspecificationexecutor

呼叫dao層可以實現介面內定義好的方法。見名知意

equals/is(可以省略)

<>        

not  

>      

greaterthan

>=  

greaterthanequals

<    

lessthan

<=  

lessthanequals

like

like

limit 0,4    

top4  (查詢前面幾條)

order by    

orderby (  asc/desc)

/**

* 推薦職位

* @return

*/public listrecommend()

/**

* 推薦職位

* @return

*/listfindtop4bystateorderbycreatetimedesc(string s);

/**

* 最新問答

* @param labelid

* @param pageable

* @return

*/@query(" select p from problem p where p.id in (select pl.problemid from pl pl where pl.labelid = ?1) order by p.replytime desc")

public pagefindnewlistbylabelid(string labelid, pageable pageable);

修改時service必須加上@transactional註解

/**

* 文章審核

* @param articleid

*/@transactional //更新操作,所以要加上事務註解

public void examine(string articleid)

修改時dao層必須加上@modifying

/**

* 文章審核

** @param articleid

*/@modifying //更新操作

@query("update article article set article.state = '1' where id =?1")

public void examine(string articleid);

Spring Data JPA 學習筆記(一)

spring data jpa 是基於orm框架,jpa規範的封裝的一套jpa應用框架,可使開發者用極簡的 即可實現對資料的訪問和操作。它提供了包括增刪改查等在內的常用功能,且易於擴充套件!spring data jpa提供的常用程式設計介面 repository 最頂層的乙個介面,是乙個空介面,目...

Spring Data JPA實踐與學習(四)

spring data jpa 為了方便我們排序和分頁,支援了兩個特殊型別的引數 sort 和 pageable。sort 在查詢的時候可以實現動態排序,我們看下其原始碼 public sort direction direction,string.properties sort 裡面決定了我們哪些...

Spring Data JPA實踐與學習(九)

實體與實體之間的關聯關係一共分為四種,分別為onetoone onetomany manytoone 和 manytomany 而實體之間的關聯關係又分為雙向的和單向的。實體之間的關聯關係是在 jpa 使用中最容易發生問題的地方。entity data builder allargsconstruc...