2016-04-25 12 views
0

HibernateDocs
In diesem Link zu Hibernate Docs, in dem Beispiel in Cat.class wird die setId()private deklariert.
Ist es eine gute Praxis, setters privat für die Felder zu markieren, deren Werte ich nicht ändern möchte?

Kann dies auch als Alternative zum Markieren von Feldern final verwendet werden? Bereitstellen des Standardkonstruktors und des Konstruktors mit den gewünschten Feldern und Setzen von Setter für diese Felder.

Ich möchte diese Antwort im Hibernate-Kontext, nicht Java Abstraktion. Ist das eine gute Praxis und sollte es verwendet werden?Ist es eine gute Übung, Setter privat in Hibernate zu markieren?

+0

"Ist es eine gute Übung, Setter privat für die Felder zu markieren, deren Werte ich nicht ändern möchte." - Sagst du oder fragst du? –

+0

@Jose Gomez Fragen :) –

Antwort

0

Ich denke nein. Felder Kapselungsmethoden werden verwendet, um auf private Felder von außerhalb einer Klasse zuzugreifen/diese zu setzen. Wenn Sie Ihr Feld nicht ändern möchten, sollten Sie es als endgültig deklarieren oder Sie sollten keine Setter-Methode deklarieren. Das gezeigte Beispiel für den Ruhezustand ist eine Ausnahme. Wenn Sie eine Entity beibehalten, wird die ID-Eigenschaft (falls automatisch generiert) automatisch durch Reflektion gesetzt. Wenn Sie diesen Setter privat machen, ist dies ein guter Weg, diesen Wert zu erhalten, ohne das Risiko einer manuellen Änderung in Ihrem Code.

+0

Ich stimme zu .. Aber wegen Hibernate bin ich gezwungen, die Setter 'Methoden' zu erklären –

+0

ja Sie müssen es erklären, aber Sie könnten es privat machen aus den oben genannten Gründen. Speziell für die ID-Eigenschaft . Sie müssen eine Einkapselung für eine Hibernate-Entität vornehmen, aber Sie können vermeiden, Eigenschaften zu ändern, die Sie nicht mit dem privaten Zugriff ändern möchten. –

+0

Also ist es akzeptabel, wenn ich es als privat markieren? Ich meine nach den Industriestandards und allen –

Verwandte Themen