我无法让 ObjectDB 根据它们的 id 选择多个值。我的查询非常简单:
Query query = getEntityManager().createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i WHERE i.id IN :ids", entityClass);
query.setParameter("ids", ids);
List<Object> values = query.getResultList();
但无论如何,这总是返回一个空列表。
ids 列表包含现有 id 的列表,所有这些都是 Long 对象。我对此进行了三重检查。
像这样的查询:
entityManager.find(getEntityClass(), id);
...和...
Query query = entityManager.createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i", entityClass);
...工作正常。
另外,如果我这样做: entityManager.find(getEntityClass(), 1L);
我得到了正确的结果:一个实例。
但:
List<Long> ids = new LinkedList<Long>();
ids.add(1L);
Query query = getEntityManager().createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i WHERE i.id IN :ids", entityClass);
query.setParameter("ids", ids);
List<Object> values = query.getResultList();
返回一个空列表给values
变量。
我错过了什么?这是 ObjectDB 不支持的东西吗?
谢谢!