JPA抽象クラスと汎用インタフェース

Entityクラス抽象スーパー

@MappedSuperclass 
@Data 
パブリック 抽象 クラスCommonEntity { 

  @Id 
  @GeneratedValue(戦略 = GenerationType.IDENTITYを)
   プライベートロングID。

  @JsonFormat(パターン = "YYYY-MM-DD HH:MM:SS"、時間帯= "GMT + 8" 
  @DateTimeFormat(パターン = "YYYY-MM-DD HH:MM:SS" 
  @Temporal(TemporalType.TIMESTAMP )
  @CreatedDate 
  プライベート日CREATETIME。

  @JsonFormat(パターン = "YYYY-MM-DD HH:MM:SS"、時間帯= "GMT + 8" 
  @DateTimeFormat(パターン = "YYYY-MM-DD HH:MM:SS"
  @LastModifiedDate 
  プライベート日付modifiedTime。
}

抽象インタフェース層

@NoRepositoryBean
 パブリック インターフェース BaseRepository <TはCommonEntityは、IDが延びる延びシリアライズ> 延びリポジトリ<T、IDを> { 

    / ** 
     *管理対象エンティティを削除します。
     * @paramのID削除エンティティのID。
     * @return       { @code 削除エンティティを含むオプション}。そこ場合
     *指定されたIDを有するいかなる実体がなく、この方法は、空{返し@code オプションを}。
     * / 
    オプション <T> deleteById(ID番号)。
}

エンティティインタフェース

インタフェース TodoRepositoryは延び BaseRepository <藤堂、ロング> { 

    一覧 <藤堂> のfindAll(); 

    / ** 
     *メソッドのパラメータとして与えられた検索用語を使用してTODO項目を検索します。
     * @param SEARCHTERM与えられた検索用語。
     * @return   タイトルや説明与えられた検索語を含んでTODOエントリのリスト。
     * / 
    @query( + "藤堂TからTを選択" 
            "LOWER LIKE LOWER(t.title)(CONCAT( '%' ,: SEARCHTERM、 '%'))OR" + 
            LOWER LIKE「LOWER(t.description) (CONCAT( '%' ,: SEARCHTERM、 '%')) "
    一覧 <藤堂> findBySearchTerm(@Param( "検索語" )文字列検索語)。

    オプション <藤堂> findOne(ロングID); 

    フラッシュ(); 

    (藤堂が持続)を保存藤堂。
}

 

全体的に、道の拡張の多く

おすすめ

転載: www.cnblogs.com/zhouwenyang/p/11136536.html