最近突然用到jpa的功能,之前沒有接觸過,在這裡單純整理和分享,只是自己的處理方法和思路
1.@data 單純理解是代替了get和set,寫此**可以不用再類中寫get、set方法了,需要引入lombok包
2.@apimodel 是可在swagger頁面顯示的註解
3.@sqldelete(sql = 「update demo set isdelete = 1 where id = ?」) 在執行jpa的刪除操作時,可根據後邊的內容來確定每次刪除時預設的條件,這裡可以理解當傳如id後,每次都將isdelete的字段改為1
4.@where(clause = 「isdelete = 0」) 每次select時,都將預設加上isdelete=0這個條件
5.@dynamicinsert @dynamicupdate 生成的sql就會只輸出set有變化的字段
@data
@entity
@table(name = "demo")
@apimodel(value = "demo 物件")
@sqldelete(sql = "update demo set isdelete = 1 where id = ?")
@where(clause = "isdelete = 0")
@dynamicinsert
@dynamicupdate
@accessors(chain = true)
public class demo implements serializable
@modifying在update中使用
@repository
public inte***ce demodao extends jparepository !='',d.username=:#,1=1) ",
countquery = "select count(*) from demo d left join user_table u on d.username=u.uname where if(:# !='',d.username=:#,1=1)",nativequery=true)
pagefindmanytable(@param("demo") demo demo, pageable pageable);
@query(value="select new com.sncy.evaluateservice.entity.demousermap(d,u) from demo d left join usertable u on d.username=u.uname where d.username=:#")
pagefindmanytablehql(@param("demo") demo demo, pageable pageable);
}
dao層整合jparepository後,泛型中的demo是原本的實體類
1.單錶demo查詢的話,可以直接用findall或者findone來執行
2.多表對多表的情況,可以根據findmanytable方法,編寫原生sql來進行業務操作,這裡返回的是page,可根據自身情況做調整,如果不需要jpa的的分頁,可以直接用list
來接返回值
3.一對多或者多對一的情況,可以根據findmanytablehql使用hql來實現業務流程,這裡需要注意:
select new com.sncy.evaluateservice.entity.demousermap(d,u) from demo d left join usertable u on d.username=u.uname where d.username=:#")
hql中 所有的表名均是類名,不是資料庫表名,返回值demousermap是需要單獨生成乙個實體類,包含需要查詢兩個表的實體類,可看下圖二
JPA雙向一對多 多對一實體配置
需要注意 主鍵要使用jpa策略生成,不然使用級聯操作的時候回多出幾條查詢語句,增加應用和資料庫互動的負擔。t category 為one的一方,t fruit為多的一方 型別表 create table t category id varchar 64 not null primary key,na...
django 一對多,多對多查詢
假設有表的關係如下 1 class classes models.model 2 name models.charfield max length 32 3 institute models.charfield max length 32 4 headteacher models.foreignke...
表關係 一對一,一對多,多對多
可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...