當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例
生活随笔
收集整理的這篇文章主要介紹了
Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
新建兩個實體
@Entity(name = "UserInfoEntity") @Table(name = "user_info", schema = "test") public class UserInfoEntity implements Serializable {@Id@Column(name = "id", nullable = false)private Integer id;@Column(name = "first_name", nullable = true, length = 100)private String firstName;@Column(name = "last_name", nullable = true, length = 100)private String lastName;@Column(name = "telephone", nullable = true, length = 100)private String telephone;@Column(name = "create_time", nullable = true)private Date createTime;@Column(name = "version", nullable = true)private String version;@OneToOne(optional = false,fetch = FetchType.EAGER)@JoinColumn(referencedColumnName = "id",name = "address_id",nullable = false)@Fetch(FetchMode.JOIN)private UserReceivingAddressEntity addressEntity; ...... }@Entity @Table(name = "user_receiving_address", schema = "test") public class UserReceivingAddressEntity implements Serializable {@Id@Column(name = "id", nullable = false)private Integer id;@Column(name = "user_id", nullable = false)private Integer userId;@Column(name = "address_city", nullable = true, length = 500)private String addressCity; ...... }UserRepository 需要繼承 JpaSpecificationExecutor
public interface UserRepository extends JpaSpecificationExecutor<UserInfoEntity> { }調用者 UserInfoManager 的寫法
- 我們演示一下直接用 lambda 使用 Root<T> 和 CriteriaBuilder 做一個簡單的不同條件的查詢和鏈表查詢。
- 我們再來看一個不常見的復雜查詢的寫法,來展示一下 CriteriaQuery 的用法(作者已經強烈不推薦了哦,和上面比起來太不優雅了)。
- 而沒有 Spring Data JPA 封裝之前,如果想獲得此三個對象 Root<T> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder,老式 Hibernate 的寫法如下(PS:強烈不推薦哦,雖然現在也支持,只是讓大家知道了解一下。):
- 我們再來看一個利用 CriteriaQuery 例子,其實大家可以擴展一下思路,就是 Hibernate 那套在這里面都支持,不過作者還是建議代碼越簡單越好。
總結
以上是生活随笔為你收集整理的Spring Data JPA 从入门到精通~JpaSpecificationExecutor示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis系列一、redis介绍与安装
- 下一篇: 有效单元测试之可读性