Criteria API - 具有参数表达式的优点

时间:2014-06-24 02:07:45

标签: java performance criteria criteria-api

在条件api查询中使用参数表达式有什么好处?

ParameterExpression<String> myParameter= criteriaBuilder.parameter(String.class, "name");
criteriaBuilder.equal(someDatabaseColumn,myParameter);
query.setParameter(myParameter,"valueOfParameter");

criteriaBuilder.equal(someDatabaseColumn,"valueOfParameter");

两种方式,结果都是一样的。但是,使用或不使用参数对查询性能的影响是什么。

1 个答案:

答案 0 :(得分:0)

您可以以编程方式更改查询,而不会有安全风险(SQL注入)。此外,它允许您通过设计更通用的逻辑方法来获得“松耦合”代码,而不是在字符串上编写特定的SQL查询。除非您的查询是预编译的(在具有@NamedQueries的实体中定义的查询),否则您将无法获得任何性能优势。