web-dev-qa-db-ja.com

JPAアノテーションをどこに置くか?フィールド、それともゲッター?

  1. フィールドのバージョン:

    @Column(name = "SAMPLE_STRING")  
    private String sampleString;
    
    public String getSampleString(){  
      return sampleString;  
    }
    
  2. ゲッターのバージョン:

    private String sampleString;
    
    @Column(name = "SAMPLE_STRING")  
    public String getSampleString(){  
      return sampleString;  
    }  
    

両方ともうまく機能しているようですが、どちらかを使用しない理由がありますか、それとも私がそれらの1つを優先する必要があるのは良い習慣ですか?

5
CsBalazsHungary

https://stackoverflow.com/questions/14028198/jpa-why-the-annotations-are-applied-on-getter-or-field から取得、フィールドに注釈を適用する場合、 jpaプロバイダーはフィールドを直接設定します。ゲッターに注釈を付ける場合、JPAプロバイダーはアクセサーメソッドを使用します。

仕様の2.3.1章 ここ を参照してください。

私はいくつかの理由でフィールドアクセスを好む:
-すべてのプロパティにゲッターとセッターを提供する必要がないため、実際にカプセル化が強化されます。
-読みやすいと思うので、フィールドのクラスの最初に情報をグループ化することを好みます

8
ftr