Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA条件-从数组中选择枚举_Java_Jpa_Spring Data Jpa - Fatal编程技术网

Java JPA条件-从数组中选择枚举

Java JPA条件-从数组中选择枚举,java,jpa,spring-data-jpa,Java,Jpa,Spring Data Jpa,在我的实体中,我有一个类型为enum的属性状态,在查询中,我想传递一个状态数组以获取其状态存在于数组中的所有实体,因此我在中使用了谓词,但我得到了这个错误 参数值[整数]与预期类型不匹配 [公约状态枚举(不适用)] @实体 公共类ConventionEntity实现可序列化{ @枚举(EnumType.STRING) 私有约定状态枚举状态; } CriteriaBuilder cb=entityManager.getCriteriaBuilder(); CriteriaQuery=cb.crea

在我的实体中,我有一个类型为
enum
的属性状态,在查询中,我想传递一个状态数组以获取其状态存在于数组中的所有实体,因此我在中使用了谓词
,但我得到了这个错误

参数值[整数]与预期类型不匹配 [公约状态枚举(不适用)]

@实体
公共类ConventionEntity实现可序列化{
@枚举(EnumType.STRING)
私有约定状态枚举状态;
}
CriteriaBuilder cb=entityManager.getCriteriaBuilder();
CriteriaQuery=cb.createQuery(ConventionEntity.class);
根约定=q.from(ConventionEntity.class);
列表谓词=新的ArrayList();
列表状态=Arrays.asList(新字符串[]{“integrared”,“PUBLISHED”});
if(CollectionUtils.isNotEmpty(状态)){
add(convention.get(“status”).in(status));
}
query.where(谓词.toArray(新谓词[0]);
TypedQuery TypedQuery=em.createQuery(查询);

列表
状态
必须是
约定状态枚举的列表

List<ConventionStatusEnum> status = Arrays.asList(
    ConventionStatusEnum.INTEGRED,
    ConventionStatusEnum.PUBLISHED);
List status=Arrays.asList(
ConventionStatusEnum.integrared,
约定状态(已发布);

基本上,错误消息告诉JPA实现在需要类型为
ConventionStatusEnum
的参数时,得到了类型为
String
的参数。列表
status
必须是
ConventionStatusEnum
的列表:

List<ConventionStatusEnum> status = Arrays.asList(
    ConventionStatusEnum.INTEGRED,
    ConventionStatusEnum.PUBLISHED);
List status=Arrays.asList(
ConventionStatusEnum.integrared,
约定状态(已发布);

基本上,错误消息告诉JPA实现获得了一个
String
类型的参数,而它期望的是
ConventionStatusEnum

类型的参数。您的逻辑是正确的,但是您是否尝试更改
List status=Arrays.asList(新字符串[]{“integrad”,“PUBLISHED”})
List status=Arrays.asList(“整型”、“已发布”)
。我认为这是原因。您的逻辑是正确的,但您是否尝试更改
List status=Arrays.asList(新字符串[]{“integrared”,“PUBLISHED”})
List status=Arrays.asList(“整型”、“已发布”)
。我认为这是原因。