Java : JPA相關以及常用注解



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  忽略大小寫

Repository 定義方法的時候,查詢必須以 find,read,get開頭,條件屬性用關鍵字鏈接,條件屬性首字母大寫,級聯查詢
如果當前實體類有符合條件的屬性,那么優先使用,而不使用級聯屬性,使用級聯屬性,之間用_進行連接.

如果想在@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 保持唯一性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM