【发布时间】:2017-09-21 13:41:34
【问题描述】:
我有以下实体:
public class Role extends AbstractDomain<Long> {
@Id
@Column
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "idgen_x")
@UiInfo(name = "Identifiant")
private Long roleId;
@Column
@UiInfo(name = "Libellé")
private String lib;
@Column
@UiInfo(name = "Provenance")
private EnumP enumPID;
}
枚举:
public enum EnumP {
W, X, Y, Z;
}
使用 JPA Criteria API,我想获取 Role 的列表,其中数组中的 Role.enumPID 包含字符串形式的枚举值。
这是我试过的Predicate的代码:
builder.isTrue(fromRole.get(Role_.enumPID).in((Object[]) filter.getFilterSetValues()))
filter.getFilterSetValues() 包含字符串形式的枚举值,如下所示:
["X","Y"]
但我收到此错误消息:
java.lang.IllegalArgumentException: Parameter value [X] did not match expected type [***.EnumP (n/a)]
我该如何解决这个问题?
【问题讨论】:
标签: java hibernate jpa jpa-2.0 criteria