【发布时间】:2012-11-08 17:20:46
【问题描述】:
什么会更快找到匹配项:迭代列表或执行 JPQL 查询?当然,平均而言,因为这也取决于匹配项在列表中的位置。答案是否取决于列表大小?
示例:查找名称为“Joe”(唯一名称)的人
JPQL:
TypedQuery<Person> q = em.createQuery( "SELECT p " +
"FROM Person p " +
"WHERE p.name = :name ", Person.class);
q.setParameter("name", "Joe");
return q.getResultList().size() == 1;
迭代:
for (Person p : persons) {
if ("Joe".equals(p.name)) {
return true;
}
}
return false;
【问题讨论】:
-
(p.name == "Joe")看起来很可疑。你的意思是(p.name.equals("Joe")),然后还是("Joe".equals(p.name))更好? -
是的,这样会更好。我会改变它。但这并没有改变我的问题。
标签: performance jpql loops