1. 程式人生 > >Java : JPA相關以及常用註解

Java : JPA相關以及常用註解

basic strategy 定義 emp 年月日 criteria 長度 如果 oot


SpringDataJPA自定義的查詢方法 定義規範
And 並且
   Or     或
  Is,Equals    等於
   Between     兩者之間
   LessThan      小於
   LessThanEqual   小於等於
   GreaterThan     大於
   GreaterThanEqual  大於等於
   After    之後(時間) >
  Before    之前(時間) <
  IsNull        等於Null
  IsNotNull,NotNull   不等於Null
  Like    模糊查詢。查詢件中需要自己加 %
  NotLike 不在模糊範圍內。查詢件中需要自己加 %
  StartingWith  以某開頭
  EndingWith   以某結束
  Containing   包含某
  OrderBy  排序
  Not    不等於
  In     某範圍內
  NotIn   某範圍外
  True    真
  False    假
  IgnoreCase  忽略大小寫

如果想在@Query使用原生的sql語句,那麽需要 @Query(value=("SQL語句"), nativeQuery=true

Specification<> specification = new Specification() {},一般用於組合查詢,一般用它的匿名內部類.

root代表查詢的實體類,query可以從中得到root對象,告訴jpa查詢哪一個實體類,還可以添加查詢條件,還可以結合
EntityManager對象 得到最終查詢的 TypedQuery對象.

CriteriaBuilder對象 用於創建 Criteria相關對象的工廠,可以從中獲取到 Predicate對象.

裏面的 toPredicate 方法需要重寫,返回 Predicate對象,這個對象代表一個查詢條件.

JPA常用註解

@Entity 將該類標記為實體類,映射到指定的數據庫的表

@Table name:數據庫的表名

@Id 聲明一個屬性映射為數據庫表的主鍵列,可以標記在屬性上也可以標記在set方法上.

@GeneratedValue 標註主鍵生成策略, strategy:GenerationType.AUTO(默認自動) GenerationType.IDENTITY(數據庫id自增長)

@Basic 簡單的屬性到表字段的映射, getXxx() 方法會默認加上這個註解

@Column name:字段名,unique:唯一約束,nullable:非空約束,length:長度

@Transient 如果一個屬性不需要映射為表中的字段,name需要加這個註解,否則會默認標記為@Basic.(一般用於工具方法)

@Temporal TemporalType:TIMESTAMP(年月日時分秒) DATE(年月日)

@JoinColumn name:映射外鍵的字段名(映射的表直接把表的實體類作為數據類型,如 private 實體類 屬性名)

@ManyToOne 單向多對一關系 fetch:FetchType.LAZY(修改關聯屬性加載策略為懶加載)

@OneToMany 單向一對多關系

@OneToOne 單向一對一,一對一關系時,@JoinColumn 可以加上一條 unique=true 保持唯一性

Java : JPA相關以及常用註解