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 の提供を予定していますが、(JPA2 基準とは異なり) QueryDSL に似た使用可能なものです。

于 2010-05-28T09:56:59.717 に答える