0

使用 JDOQL 查询时,使用声明式版本和单字符串版本之间是否存在性能差异:

JDOQL 文档中的示例:

//Declarative JDOQL :
Query q = pm.newQuery(org.jpox.Person.class, "lastName == \"Jones\" && age < age_limit");
q.declareParameters("double age_limit");
List results = (List)q.execute(20.0);

//Single-String JDOQL :
Query q = pm.newQuery("SELECT FROM org.jpox.Person WHERE lastName == \"Jones\"" +
                      " && age < :age_limit PARAMETERS double age_limit");
List results = (List)q.execute(20.0);

除了性能之外,是否有任何理由说明哪一个比另一个更好用,或者它只是我们感觉更舒服的一个。

4

1 回答 1

2

完全没有性能差异。唯一发生的事情是单字符串形式被解析为组件。使用您认为最方便的。或者使用 QueryDSL 的 JDOQL。JDO3.x 已经计划提供一个类型安全的可重构查询 API,但是一些类似于 QueryDSL 的可用(与 JPA2 标准不同)

于 2010-05-28T09:56:59.717 回答