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(“整型”、“已发布”)
。我认为这是原因。