2016-04-25 6 views
0

HibernateDocs
この例では、Cat.classsetId()privateと宣言されています。
値を変更したくないフィールドにsettersを非公開とするとよいでしょうか?

これは、マーキングフィールドfinalの代わりに使用できますか?デフォルトのコンストラクターとコンストラクターに必要なフィールドを提供し、それらのフィールドに対してセッターを非公開にします。

この答えは、Javaの抽象概念ではなく、Hibernateのコンテキストで欲しいです。 これは良い習慣であり、使用する必要がありますか?Hibernateでセッターを非公開にするのは良い方法ですか?

+0

"値を変更したくないフィールドに対してセッターをプライベートに設定するのは良い方法ですか?" - あなたは話しているのか聞いていますか? –

+0

@Jose Gomezお問い合わせ:) –

答えて

0

だと思います。フィールドカプセル化メソッドは、クラスの外部からプライベートフィールドにアクセス/設定するために使用されます。フィールドを変更しない場合は、最後に宣言するか、セッターメソッドを宣言しないでください。示された休止状態の例は例外です。エンティティを永続化する場合、idプロパティ(自動生成された場合)はリフレクションによって自動的に設定されます。このセッターを非公開にすることは、コード内で手動で変更するリスクなしにこの値を保持する良い方法です。

+0

私は同意します。しかし、Hibernateのために私はsetterのメソッドを宣言することを余儀なくされています –

+0

はい、宣言しなければなりませんが、上記の理由により非公開にすることができます。 。 Hibernateエンティティのカプセル化を強制されますが、プライベートアクセサを使用して変更したくないプロパティの変更を避けることができます。 –

+0

私はそれをプライベートとしてマークすればいいですか?私は業界標準とすべてを意味します –

関連する問題