代码之家  ›  专栏  ›  技术社区  ›  Jla

声明性JDOQL与单字符串JDOQL:性能

  •  0
  • Jla  · 技术社区  · 14 年前

    使用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);
    

    除性能外,还有什么理由可以让一个人比另一个人更好地使用,或者只是让我们感觉更舒服的一个人。

    1 回复  |  直到 14 年前
        1
  •  2
  •   DataNucleus    14 年前

    完全没有性能差异。唯一发生的事情是将单个字符串形式解析为组件。用你觉得最方便的。或者使用querydsl的jdoql。jdo3.x已经计划提供一个类型安全的可重构查询API,但是类似于querydsl的一些可用的东西(与jpa2标准不同)。