在条件api查询中使用参数表达式有什么好处?
ParameterExpression<String> myParameter= criteriaBuilder.parameter(String.class, "name");
criteriaBuilder.equal(someDatabaseColumn,myParameter);
query.setParameter(myParameter,"valueOfParameter");
或
criteriaBuilder.equal(someDatabaseColumn,"valueOfParameter");
两种方式,结果都是一样的。但是,使用或不使用参数对查询性能的影响是什么。
答案 0 :(得分:0)
您可以以编程方式更改查询,而不会有安全风险(SQL注入)。此外,它允许您通过设计更通用的逻辑方法来获得“松耦合”代码,而不是在字符串上编写特定的SQL查询。除非您的查询是预编译的(在具有@NamedQueries
的实体中定义的查询),否则您将无法获得任何性能优势。