Как исключить дубликаты из HQL запроса?

222
01 августа 2017, 15:57

Есть метод который из таблицы с предложениями о продаже машин выбирает все марки включая дубликаты. Как избавится от дубликатов а уровне запроса?

public List<String> getMarks() {
    List<String> result;
    final String hq = "select p.mark from Propose p";
    try (final Session session = factory.get().openSession()) {
        result = session.createQuery(hq, String.class).getResultList();
    }
    return result;
}

Вызываю: result.forEach(System.out::println); и получаю все значения включая дубликаты. Можно конечно просто в Set сразу перекинуть все значения но хотелось бы отсечь дубликаты на уровне запроса. Как это можно сделать?

Таблица:

CREATE TABLE IF NOT EXISTS propose (
     id SERIAL NOT NULL ,
     id_auhtor INTEGER NOT NULL ,
     sold BOOLEAN NOT NULL ,
     description TEXT NOT NULL ,
     mark TEXT NOT NULL ,
     model TEXT NOT NULL ,
     image BYTEA,
     PRIMARY KEY (id),
     FOREIGN KEY (id_auhtor) REFERENCES users (id)
);
Answer 1

Попробуйте:

final String hq = "select DISTINCT p.mark from Propose p";
READ ALSO
Origin null в cors фильтре JavaEE

Origin null в cors фильтре JavaEE

Подскажите пожалуйстаЕсть CORS фильтр:

244
Закрытие окна JavaFX

Закрытие окна JavaFX

Мне нужно закрыть окно, при нажатии на кнопку в другом окнеВот как я это попытался сделать, но выдает ошибку NullPointerException

563
Почему не получается запустить directoryChooser из JButton

Почему не получается запустить directoryChooser из JButton

Использую Window Builder в EclipseПри выполнении следующего кода получаю ошибку

254
Как добавить \ в строку в Java

Как добавить \ в строку в Java

Пишу программу которая бы создавала bat-ник для копирования файлов с одной папки в другуюИ, увы, столкнулся с проблемой когда надо вставить...

253