Wie erhält man den SingularAttribute-Wert eines persistenten Objekts?

9

Ich habe ein persistentes Objekt (Aktion) und ein automatisch generiertes Datenmodell (Action_). Kann man mit einem Objekt der Action-Klasse und einer Instanz von SingularAttribute das Feld erhalten, das dem gegebenen SingularAttribute entspricht?

Ich brauche eine Funktion wie folgt:

%Vor%

Meine Entitätsklasse (Action.java):

%Vor%

Meine Metamodellklasse (Action_.java):

%Vor%     
Sadegh Ramezanpour 16.08.2011, 11:26
quelle

2 Antworten

4

Sie können die Methode getJavaMember() verwenden, um das Element abzurufen, dann testen, ob dieses Element ein Field oder ein Method ist, und auf das Feld zugreifen oder die Methode für das Objekt mithilfe der Reflektion aufrufen.

Sie müssen wahrscheinlich das Feld oder die Methode zugänglich machen, bevor Sie darauf zugreifen / es aufrufen. Und Sie müssen auch die Umwandlung primitiver Typen in Objekte behandeln.

Die Hauptfrage ist: Warum brauchen Sie das?

Wenn Sie es nur für diese spezifische Entitätsklasse benötigen, können Sie einfach einen Schalter für den Attributnamen verwenden und den entsprechenden Wert zurückgeben:

%Vor%     
JB Nizet 16.08.2011, 12:03
quelle
8

Wie JB Nizet vorgeschlagen hat, können Sie getJavaMember verwenden. Ich habe festgestellt, dass ich keine privaten Felder festlegen muss, um zugänglich zu sein, vielleicht hat Hibernate dies bereits getan.

Falls das hilfreich ist, hier ein Code, der für mich funktioniert:

%Vor%     
Rich 20.02.2012 11:08
quelle

Tags und Links