Alles, was ich von Google sammeln konnte, ist, dass:Was enthält das Hibernate-Proxy-Objekt?
Hibernate verwendet ein Proxy-Objekt verzögertes Laden zu implementieren. Wenn wir das Objekt aus der Datenbank laden und das abgerufene Objekt einen Verweis auf ein anderes konkretes Objekt hat, gibt Hibernate anstelle des konkreten zugeordneten Objekts einen Proxy zurück.
Hibernate erstellt ein Proxy-Objekt mithilfe von Bytecode-Instrumentierung (von javassist bereitgestellt). Hibernate erstellt zur Laufzeit mithilfe der Codegenerierungsbibliothek eine Unterklasse unserer Entitätsklasse und ersetzt das tatsächliche Objekt durch den neu erstellten Proxy.
Also, was genau enthält das Proxy-Objekt?
Enthält es ein Referenzobjekt für ein Skelettobjekt mit nur dem festgelegten ID-Feld? Andere Felder werden gesetzt, wenn wir die Methode get aufrufen.
Enthält das Proxy-Objekt die JDBC-Anweisung, um alle Daten abzurufen, die zum vollständigen Auffüllen des referenzierten Objekts erforderlich sind.
Gibt es noch etwas, das ich vermisse?
Ich frage nicht nach Löffelfütterung, aber wenn Sie irgendeine Verbindung mit Informationen zur Verfügung stellen können, die groß wären.
Jede Korrektur der obigen Beschreibung wird ebenfalls begrüßt.
Beispiel.
class Address {
String city;
String country;
}
class Person{
int id;
String name;
Address address;
}
Wenn wir versuchen, das Person-Objekt zu laden, wird Hibernate Unterklasse Klasse Person wie:
class ProxyPerson extends Person {
int id;
String name;
Address proxyCGLIBObject;
}
und gibt ein ProxyPerson Objekt. Objekt von ProxyPerson wird einen Wert für ID und Name aber Proxy für Adresse haben.
Bin ich richtig?
Was kann ich vom Hinzufügen einer toString() - Methode für das Proxy-Objekt erwarten?
Danke Vlad, meine Frage nicht in Sammlung, sondern Verweis auf andere Klassen. Bitte sehen Sie sich das Beispiel jetzt an. – vineeshchauhan
Ja, Ihre Annahmen sind richtig. –
Ich verstehe immer noch nicht. – Spider