ho bisogno di capire come applicare il filtro di annotazione-based con una lista di parametri di enumerazioni definito come:Hibernate @Filter collezione di enumerazioni
@Column(name = "target_status")
@Enumerated(EnumType.STRING)
@Type(type="PGEnumConverter", parameters = {
@Parameter(name = "enumClassName",
value = "com.company.model.campaign.CampaignTarget$Status")
})
private Status targetStatus;
Quindi il mio @FilterDef
assomiglia a questo:
@FilterDef(name="filterCampaignTargetByStatuses",
defaultCondition="target_status in (:statuses)",
parameters = @ParamDef(name = "statuses", type = "string"))
E quando abilitare il filtro che assomiglia a questo:
session.enableFilter("filterCampaignTargetByStatuses").
setParameterList("statuses", statuses);
e l'errore che ottengo fro m Hibernate è:
org.hibernate.HibernateException: Incorrect type for parameter [statuses]
I dati sono in PostgreSQL e la definizione del tipo:
CREATE TYPE statuscmp AS ENUM ('ACTIVE','INACTIVE','PAUSED','DRAFT','SCHEDULED','ENDED','ARCHIVED');
Ho visto un sacco di SO domande su come fare criteri di query e filtri contro un singolo Valore enumerato, ma nessuno ancora sul filtraggio su un imposta valori di Enum. C'è un modo per esprimere esplicitamente i singoli valori?