querydsl: Как использовать "порядок по столбцу соединения", а не столбец объединенной сущности?

Я хочу использовать столбец "упорядочить по соединению", а не объединенный столбец объекта с QueryDSL.

Как мне это сделать?

запрос..

QMyActivityHistory qMyActivityHistory = QMyActivityHistory.myActivityHistory;
JPQLQuery<MyActivityHistory> query = from(qMyActivityHistory);
query.orderBy(qMyActivityHistory.targetArticle.id.desc()); // As-is
// query.orderBy(qMyActivityHistory.targetArticle.desc()); // To-be. but compile error

юридические лица..

@Entity
@Table(name="my_activity_history")
public class MyActivityHistory {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="target_article_id")
    private Article targetArticle;

    // omit
}

@Entity
@Table(name="article")
public class Article {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // omit
}

Как есть

QMyActivityHistory qMyActivityHistory =    QMyActivityHistory.myActivityHistory;
JPQLQuery<MyActivityHistory> query = from(qMyActivityHistory);
query.orderBy(qMyActivityHistory.targetArticle.id.desc()); // As-is

этот код генерирует следующий sql.

SELECT *
FROM my_activity_history myactivity0_
LEFT OUTER JOIN article article1_ ON myactivity0_.target_article_id=article1_.id
ORDER BY article1_.id DESC
LIMIT 100;

-> используя сортировку файлов.. OTL

Быть

QMyActivityHistory qMyActivityHistory =     QMyActivityHistory.myActivityHistory;
JPQLQuery<MyActivityHistory> query = from(qMyActivityHistory);
// query.orderBy(qMyActivityHistory.targetArticle.desc()); // To-be. but compile error

sql это..

SELECT *
FROM my_activity_history myactivity0_ LEFT OUTER JOIN article article1_ ON myactivity0_.target_article_id=article1_.id
ORDER BY myactivity0_.target_article_id DESC
LIMIT 100;

0 ответов

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