Wir haben die folgenden KlassenWie die DiscriminatorValue zur Laufzeit bekommen
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // optional annotation as this is default
@DiscriminatorColumn(name = "apType", discriminatorType = DiscriminatorType.STRING, length = 255)
@DiscriminatorValue("AP")
public class ApplicationProcess {
}
Und das
@Entity
@DiscriminatorValue("APS")
public class ApplicationProcessScheme extends ApplicationProcess {
}
Jetzt muss ich zur Laufzeit wissen, ob die ApplicationProcess
von DiscriminatorValue
AP or APS
ist. Da dies automatisch von jpa gehandhabt wird, habe ich keine Möglichkeit, diesen Wert zu erhalten.
Wir rufen eine Methode auf, die einen ApplicationProcess
als Parameter verwendet, und ich möchte vermeiden, mit instanceof
zu überprüfen, welcher Typ es ist. Wäre kühler sein, wenn ich so etwas tun konnte
applicationProcess.getApType().equals("AP");
@Shervin: Sie können, aber es ist keine gute Idee, Ihre Logik sollte sich nicht darauf verlassen . –
@Pascal: Ich denke ich muss. Auf der xhtml-Seite habe ich keine Möglichkeit im EL-Ausdruck 'instanceof' zu sagen (glaube ich). Also könnte ich das brauchen. –
@Shervin: Es tut mir leid, dies zu sagen, aber es scheint, dass Sie einen großen Fehler in Ihrem Design haben, die ** Ansicht ** sollte sich NIEMALS auf einen Diskriminatorwert verlassen müssen (dies gilt für Business-Code aber noch mehr für die Aussicht). –