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% 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% 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%Tags und Links jpa persistence java-ee metamodel