Der Versuch, specification für Filterdaten auf Datenbankebene zu verwenden. Ich habe eine Entität mit einer anderen Entität als eine Instanz, in der die Instanzvariablenklasse ein Emun-Feld enthält. Dies ist standardmäßig eine Zeichenfolge in der Datenbank für das enum-Feld.Umgang mit Enums als Zeichenfolge im Frühjahr Daten jpa Spezifikation
@Entity
public class Outer{
@OneToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "current_status")
private Status current;
@OneToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "past_status")
private Status past;
...
...
@Entity
public class Status{
@Enumerated(EnumType.STRING)
@Column(name = "state")
private State state;
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid",strategy = "uuid2")
@Column(name = "id")
private String id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "outer_id")
private Outer outer;
Ich habe static meta models
erstellt sowohl für die Klassen.
Wie erstelle ich ein Predicate
State
paßt eine where in
Klausel mit dem ENUM-Wert als Strings
(keine Instanzen von Aufzählungen) geliefert mit?
Nun in einer Reihe von 'Enum vorbei 'ie -' State 'macht es für mich in der' in 'Klausel mit der offensichtlichen Tatsache, dass ich 'Strings' in' Enums' umwandeln muss. –
An erster Stelle, können Sie Entitäten verschachteln? Laut JPA-Spezifikation müssen sie Top-Level-Klassen sein. – ujulu
Sorry @ujulu, wenn meine Aussagen irreführend sind. Aber die Entitäten sind nicht verschachtelt, d. H. - keine innere Klasse. Beachten Sie, dass beide Klassen "öffentlich" sind. Es ist nur, dass ich nicht die komplette Klasse gezeigt habe. –