パッケージ jakarta.data.repository

アノテーションインターフェース By


リポジトリメソッドのパラメーターにアノテーションを付け、永続フィールドへのマッピングを指定します。

  • フィールド名が指定されている場合、パラメーターは指定された名前の永続フィールドにマップされます。
  • 特殊値「id(これ)」が指定されている場合、パラメーターは一意の識別子フィールドまたはプロパティにマップされます。

アノテーション付きパラメーターへの引数は、マップされた永続フィールドの値と比較されます。

フィールド名は、address.city のような複合名にすることができます。

たとえば、属性 ssnfirstNamelastNameaddress を持つ Person エンティティの場合、次のようになります。

 @Repository
 public interface People {

     @Find
     Person findById(@By(ID) String id); // maps to Person.ssn

     @Find
     List<Person> findNamed(@By("firstName") String first,
                            @By("lastName") String last);

     @Find
     Person findByCity(@By("address.city") String city);
 }
 

メソッドパラメーター名がエンティティ属性名と一致し、実行時にパラメーター名を使用できるようにする -parameters コンパイラーオプションを使用してアプリケーションがコンパイルされている場合、By アノテーションは不要です。

このコンパイラーオプションを有効にすると、前の例は By を使用せずに記述できます。

 @Repository
 public interface People {

     @Find
     Person findById(String ssn);

     @Find
     List<Person> findNamed(String firstName,
                            String lastname);

     @Find
     Person findByCity(String address_city);
 }
 
  • 必須定数のサマリー

    必須要素
    修飾子と型
    必須要素
    説明
    アノテーション付きパラメーターによってマップされた永続フィールドの名前、またはエンティティの一意の識別子フィールドまたはプロパティを示す「id(これ)」
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final StringSE
    一意の識別子フィールドまたはプロパティを示す特別な値。
  • フィールドの詳細

    • ID

      static final StringSE ID
      一意の識別子フィールドまたはプロパティを示す特別な値。アノテーション By(ID) は、パラメーターを識別子にマップします。

      id(this) は、暗黙的な識別変数を持つエンティティの一意の識別子を表す JPQL の式であることに注意してください。

      関連事項:
  • 要素の詳細

    • value

      StringSE value
      アノテーション付きパラメーターによってマップされた永続フィールドの名前、またはエンティティの一意の識別子フィールドまたはプロパティを示す「id(これ)」
      戻り値:
      永続フィールド名、または一意の識別子フィールドを示す「id(これ)」