2016-07-17 3 views
0

私は(SpringのAbstractPersistableを拡張します)このようなすべての私のエンティティのスーパークラスを作成しています:JPAの@versionでアノテーションを付けたフィールドには、ゲッタとセッタが必要ですか?

public class AbstractOCIDEntity extends AbstractPersistable<Long> { 

/** 
* serialVersionUID 
*/ 
private static final long serialVersionUID = 6305700913094302357L; 

// =================================== 
// Concurrency 
// =================================== 

@Version 
private long version; 
} 

@versionプロパティをgetterとsetterが必要ですか?私のテストはそのままクラスに合格しますが、それが確実であることを確認したいだけです。

TIA、 オレ

+1

フィールドまたは_needs_ゲッターおよびセッター(バージョンまたは標準であるかどうかにかかわらず) –

答えて

1

フィールドが注釈されている場合は、[いいえ、反射がフィールドを取得および設定するために使用されます。

しかし、getterに注釈が付けられていると、getter/setterメソッドによってファイルが取得/設定されます。

+0

フォローアップとして、プロパティベースのアノテーション(アノテーションゲッターとも呼ばれます)を使用する場合は、setterをパッケージプライベートまたはプライベートとして設定できますユーザーコードからのアクセスを制限したいHibernateはアクセス制限を気にせず、引き続き呼び出すことができます。 – Naros

関連する問題