ich brauche, um herauszufinden, wie Annotation basierte Filterung mit einer Parameterliste von Aufzählungen wie definiert anzuwenden:Hibernate @filter Sammlung von Aufzählungen
@Column(name = "target_status")
@Enumerated(EnumType.STRING)
@Type(type="PGEnumConverter", parameters = {
@Parameter(name = "enumClassName",
value = "com.company.model.campaign.CampaignTarget$Status")
})
private Status targetStatus;
Also meine @FilterDef
sieht wie folgt aus:
@FilterDef(name="filterCampaignTargetByStatuses",
defaultCondition="target_status in (:statuses)",
parameters = @ParamDef(name = "statuses", type = "string"))
Und wenn ich den Filter zu aktivieren sieht es wie folgt aus:
session.enableFilter("filterCampaignTargetByStatuses").
setParameterList("statuses", statuses);
Und die Fehler, die ich her bekommen m Hibernate ist:
org.hibernate.HibernateException: Incorrect type for parameter [statuses]
Die Daten in PostgreSQL ist und die Definition des Typs:
CREATE TYPE statuscmp AS ENUM ('ACTIVE','INACTIVE','PAUSED','DRAFT','SCHEDULED','ENDED','ARCHIVED');
ich eine Menge SO Fragen zu gesehen haben, wie Kriterien zu tun Abfragen und Filter gegen einen einzigen Enum-Wert, aber noch keine Filterung auf Set von Enum-Werten. Gibt es eine Möglichkeit, die einzelnen Werte explizit zu formulieren?