Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 使用IN&;通过JPQL获取数据时,操作数应包含2列;条款成员_Java_Mysql_Spring Boot_Jpql_Hibernate Mapping - Fatal编程技术网

Java 使用IN&;通过JPQL获取数据时,操作数应包含2列;条款成员

Java 使用IN&;通过JPQL获取数据时,操作数应包含2列;条款成员,java,mysql,spring-boot,jpql,hibernate-mapping,Java,Mysql,Spring Boot,Jpql,Hibernate Mapping,我正在尝试获取员工可用性的数据,并创建一个查询。我使用@ElementCollection注释来映射skills和daysAvailable,它将数据存储到另一个表中 TypedQuery<Employee> query = entityManager.createQuery("select e from Employee e where :day MEMBER OF e.daysAvailable and :list MEMBER OF e.skills ", Employee.c

我正在尝试获取员工可用性的数据,并创建一个查询。我使用@ElementCollection注释来映射skills和daysAvailable,它将数据存储到另一个表中

TypedQuery<Employee> query = entityManager.createQuery("select e from Employee e where :day MEMBER OF e.daysAvailable and :list MEMBER OF e.skills ", Employee.class);//
        query.setParameter("day", dayOfWeek);
        query.setParameter("list", employeeRequestDTO.getSkills());
        List<Employee> list = query.getResultList();

有什么建议吗?

在JPQL中,的
成员接受单个参数并检查该参数是否包含在提供的集合中

有关更多详细信息,请查看

请改为尝试此查询:

select e 
from Employee e 
join e.skills s
where 
    :day MEMBER OF e.daysAvailable  and
    s in :list

在JPQL中,
成员接受单个参数并检查该参数是否包含在提供的集合中

有关更多详细信息,请查看

请改为尝试此查询:

select e 
from Employee e 
join e.skills s
where 
    :day MEMBER OF e.daysAvailable  and
    s in :list

Hi-Vlad,我如何获取与列表中的所有值匹配的记录,而不仅仅是任何值??查看更多详细信息。Hi-Vlad,值列表将是动态的。因此,我不确定如何实现您给出的链接中提到的答案,因为它们将单个值作为参数传递。您可以动态地将列表传递给in子句,并将列表大小传递给GROUPBY子句。这不容易,但可行。嗨,弗拉德,谢谢你的帮助。我可以使用你共享的链接来完成。非常感谢!!:)Hi-Vlad,我如何获取与列表中的所有值匹配的记录,而不仅仅是任何值??查看更多详细信息。Hi-Vlad,值列表将是动态的。因此,我不确定如何实现您给出的链接中提到的答案,因为它们将单个值作为参数传递。您可以动态地将列表传递给in子句,并将列表大小传递给GROUPBY子句。这不容易,但可行。嗨,弗拉德,谢谢你的帮助。我可以使用你共享的链接来完成。非常感谢!!:)
select e 
from Employee e 
join e.skills s
where 
    :day MEMBER OF e.daysAvailable  and
    s in :list