如何使用IN子句查询ApacheIgnite
我在ApacheIgnite中创建了一个架构,如下所示:
---------------------------------------------
EmpId | EmpName | HomeZip | OfficeZip| Dept |
---------------------------------------------
1 | Sam | 98123 | 98123 | A |
---------------------------------------------
2 | Jack | 98123 | 98123 | B |
---------------------------------------------
3 | John | 98124 | 98123 | A |
---------------------------------------------
4 | Kim | 98124 | 98123 | C |
---------------------------------------------
如何执行以下查询:
- 查找A部门员工的所有详细信息
- 查找其home Zip与OfficeZip相同的员工的所有详细信息。
如何使用SQLQuery执行此操作并将响应映射到Model类
class Employee{
private Integer empId;
private String empName;
private String homeZip;
private String officeZip;
private String dept;
}
我尝试按如下方式查询,但出现错误:
//For finding out employee in list of departments
SqlQuery sql = new SqlQuery(Employee.class, "dept in (?)).setArgs(deptList);
//For finding out employee with same zip for office and home:
SqlQuery sql = new SqlQuery(Employee.class, "homeZip = officeZip");
解决方案
跟随链接:https://apacheignite-sql.readme.io/docs/performance-and-debugging#sql-performance-and-usability-considerations
SqlFieldsQuery sql = new SqlFieldsQuery(
"select e.* from Employee e join table(dept varchar = ?) d on e.dept = d.dept")
.setArgs(new Object[]{deptList.toArray()});
相关文章