Расширить мой запрос Java querydsl с помощью самосоединяющихся соединений?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Расширить мой запрос Java querydsl с помощью самосоединяющихся соединений?

Сообщение Anonymous »

У меня есть таблица с именем «объявление», в которой есть столбцы: id, custom_class_id, status, Equipment_id, previous_class_id
Если я получу запись (

Код: Выделить всё

announcement
), кроме его собственных столбцов, мне также нужен статус другого объявления на основе его custom_class_id и Equipment_id следующим образом:

Код: Выделить всё

(looked for announcement) equipment_id == (found announcement) equipment_id
и

Код: Выделить всё

(looked for announcement) custom_class_id == (found announcement) preceding_custom_class_id
Мне нужно что-то вроде:

Код: Выделить всё

private static final QAnnouncement PRECEDING_ANNOUNCEMENT = new QAnnouncement(
"precedingAnnouncement");

private List listAnnouncements() {
return new JPAQuery(entityManager).select(createEntity()).from(announcement)
.leftJoin(PRECEDING_ANNOUNCEMENT)
.on(
PRECEDING_ANNOUNCEMENT.equipment.eq(announcement.equipment)
.and(PRECEDING_ANNOUNCEMENT.custom_class.eq(announcement.custom_class))
)
.fetch()
}

private Announcement createEntity() {
return new QAnnouncement(announcement.id, announcement.custom_class, announcement.status, announcement.equipment_id, preceding_class_id, PRECEDING_ANNOUNCEMENT.status)
}
Моя проблема в том, что если я попробую это сделать, здесь выдаст ошибку:

Код: Выделить всё

.and(PRECEDING_ANNOUNCEMENT.custom_class.eq(announcement.custom_class))
он ​​говорит, что внутреннее исключение: org.h2.jdbc.JdbcSQLSyntaxErrorException: столбец «T15.ID» не найден; Оператор SQL:
Если я удалю это, он отлично будет работать, проверяя только идентификаторы оборудования, но если я добавлю это дополнительно, он умрет... Интересно, что может пойти не так?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ning-joins
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»