Hibernate sql Запрос понимания имени поля и имени столбца - PullRequest
0 голосов
/ 28 февраля 2020

Как я понимаю, HQL использует только имена объектов, имя фраз вместо имени таблицы SQL и поля вместо имени столбца, поэтому у меня есть этот код. И это может применяться как имя столбца таблицы и имя поля. Как это работает? У меня есть таблица с именем «Employee_trip_order», класс отображения «EmployeeTripOrder». Есть поле с именем «число» (в таблице это «порядковый номер»). Таким образом, я могу использовать его как в одном запросе ... Я могу сравнить order_number =: number (используя имя таблицы) и number =: number (используя имя поля). И оба варианта работают отлично. Что это?

Мой код

        String[] paramNames = {"number", "year", "id"};
        Object[] paramValues = {orderNumber, year, id};

 List<AbstractTripOrder> finded = find(
                "from " + EmployeeTripOrder.class.getSimpleName() + " where order_number = :number and extract(year from order_date) = :year and id <> :id", paramNames, paramValues);

DAO

 public List<T> find(String queryString, String[] parameterNames, Object[] parameterValues) {
        HibernateTemplate template = new HibernateTemplate(this.sessionFactory);
        return template.findByNamedParam(queryString, parameterNames, parameterValues);
    }

Сервис

@Transactional
    public List<T> find(String queryString, String[] parameterNames, Object[] parameterValues) {
        return this.getRegisterRecordDAO().find(queryString, parameterNames, parameterValues);
    }
...