java MYSQL -操作数应包含2列

ilmyapht  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(128)

当我尝试基于两列产生结果时,我得到了这个错误。
代码如下:

@Query("select u from employee u where (u.empId, u.empRating) in (:pairs)")
List<User> getusers(List<List<String>> pairs);

我也试过Map<Integer, Integer>,但没有用。我也试过把map转换成string,用replaceall来构造一个元组,也不起作用,因为string有双引号。我已经用SQL检查过,当查询中包含双引号时,它也不起作用。

2ic8powd

2ic8powd1#

我设法使查询工作与元组。或者至少被认为是这样。不幸的是,Hibernate 6还不支持元组。我有个明显的例外

org.hibernate.NotYetImplementedFor6Exception: 
   org.hibernate.metamodel.model.domain.internal.ArrayTupleType

我的存储库:

@Query("select c from Customer c where (c.id, c.name) in (:pairs)")
List<Customer> getCustomers(List<Map<Integer, String>> pairs);

相关问题