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;