2017-12-12 10 views
0

Ich entschuldige mich, wenn diese Frage vorher gepostet wurde, oder wenn die Informationen leicht verfügbar sind und ich nur ein Dummkopf bin, weil ich es nicht gefunden habe. Ich habe ziemlich viel gesehen. Ich weiß, dass sie nicht privat sein können, weil Eclipselink die Klassen mithilfe von Reflektion instanziiert.Müssen Eclipselink JPA Entity Classes öffentlich sein?

Ich finde, dass, wenn ich Klassen als privat markieren, alles scheitert. Allerdings, wenn ich sie als geschützt markieren, wird LAZY Laden fehlschlagen, während EAGER gut funktioniert. Ist das eine feststehende Regel irgendwo in der Dokumentation, oder funktioniert es einfach manchmal?

Mit anderen Worten, muss Eclipselink JPA-Entity-Klassen öffentlich sein? Ich verwende eine eingebettete Derby-Datenbank als meine zugrunde liegende Datenbank, wenn es darauf ankommt.

Antwort

2

Von http://www.objectdb.com/java/jpa/entity/types

Entitätsklasse Anforderungen

Tragbares Entitätsklasse JPA:

  • sollte eine Top-Level-Klasse sein (das heißt nicht eine verschachtelte/innere Klasse).
  • sollte einen öffentlichen oder geschützten NO-Arg-Konstruktor haben.
  • kann nicht endgültig sein und kann keine endgültigen Methoden oder endgültigen Instanzvariablen haben.

Da die Sichtbarkeitsmodifizierer für Top-Level-Klassen entweder public oder Paketebene, wenn nicht spezifiziert werden kann, ist die Antwort das Unternehmen eine Top-Level-Klasse, die public oder hat Sichtbarkeit Paketebene ist sein muss.

+0

Vielen Dank, Mr. Bain – erosten

Verwandte Themen