假设我有这个表:
TableName: order;
Columns: id (numeric - primary key);
Data: 1, 2, 3, 5, 7;
我有一个id
的列表,我想看看其中哪些在表order
中。
我直接在mysql中执行此查询:
SELECT id FROM orders WHERE id IN (1, 3, 11, 17);
我如何使用 Hibernate 执行此查询并获取包含 [1, 3](基于示例(的结果List<Integer>
。
您应该尝试将 id 存储在列表中,然后将它们作为参数传递给查询,这是执行查询的方法:
List<Long> ids = Arrays.asList(1, 3, 11, 17);
Query query = em.createQuery("SELECT id FROM orders WHERE id IN (?1)");
query.setParameterList(1, ids) ;
List<Integer> id_result = query.getResultList();