Ich habe eine Klasse mit einigen Feldern, einer davon ist SimpleObject
Typ, der entsprechenden Wert von Aufzählungstyp (siehe unten) hält. Wie kann ich dieses Feld (bloodType) in der Datenbank speichern, aber als ObjectProperty<BloodType>
nicht enum
? Ich kann den Typ der Variablen nicht ändern, um aufzulisten, weil ich die Fähigkeit verlieren werde, es in TableView
zu beobachten.Enum mit PropertyObject im Hibernate und JavaFX
Ich habe versucht, es mit @Embadded zu kommentieren, aber es scheint, dass es nur für Klassen funktioniert.
Nach meinem Code ausführen ich recive eine Ausnahme:
Caused by: org.hibernate.AnnotationException: Attribute [model.Patient.bloodType] was annotated as enumerated, but its java type is not an enum [java.lang.Object]
Klasse Patient:
@Entity
@Table(name = "Donors")
@Access(AccessType.PROPERTY)
class Patient
{
(...)
@Column(name="Blood_Type")
private ObjectProperty<BloodType> bloodType = new SimpleObjectProperty<BloodType>();
@Enumerated(EnumType.STRING)
public Object getBloodTye() {
return bloodType.get().toString();
}
public void setBloodTye(Object bloodType) {
this.bloodType.set((BloodType) bloodType);
}
}
Und Aufzählungstyp:
public enum BloodType {
A_PLUS,
A_MINUS,
AB_PLUS,
AB_MINUS,
B_PLUS,
B_MINUS,
}