Mybatis 的基於原生SQL的數據ORM映射管理數據庫
JPA不屬於ORM框架,只是一套持久化API使用規範,可以更加靈活方便的管理數據庫操做。從必定意義上來說,吸收了Hibernate和Mybatis各自的優缺點,兼容並舉的達到了一個相對完美的平衡。app
@Query 註解查詢規範(支持HQL/SQL):框架
Specification API進行復雜組合條件查詢:工具
附錄一個超簡單的使用場景事例,用於描述SpringDataJPA的操做(僅用於說明,哈哈哈):ui
Entity和DB的映射文件:UserInfospa
應用於業務場景的DTO包裝:UserDTO.net
Entity和DTO的映射工具:UserMapper對象
SpringDataJPA數據庫操做類:UserRepositoryblog
業務邏輯層的Service:UserService排序
以下提供更加複雜,強大的使用場景實例:
返回列表並排序:
Top1查詢:
HQL修改刪除操做:
count統計數量:
in查詢操做:
HQL組合查詢,並賦值到DTO組裝類:
原生SQL複雜統計查詢:
HQL組合,in查詢
知足你能想象到的,用到的各類組合,除非到了萬不得已,須要代碼層面的高級組合查詢。那個時候你就能夠使用代碼層面,靈活的自定義組合查詢。不過80%的狀況,使用JpaRepository的API已經足夠了。
Repository.findAll((root, criteriaQuery, criteriaBuilder) -> {}