Criteria API - преимущество наличия выражений параметров

В чем преимущество наличия выражений параметров в запросе API api?

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

или же

criteriaBuilder.equal(someDatabaseColumn,"valueOfParameter");

Оба пути, результат один и тот же. Но как это влияет на производительность запроса с использованием или без использования параметров.

1 ответ

Вы можете программно изменять свои запросы, не рискуя безопасностью (внедрение SQL). Кроме того, он позволяет вам иметь "слабосвязанный" код, разрабатывая более общий подход к вашей логике, вместо того, чтобы писать конкретные запросы SQL для строк. Вы не получите никакого преимущества в производительности, если ваши запросы не будут предварительно скомпилированы (запросы, определенные в сущности с @NamedQueries).

Другие вопросы по тегам