我有一本桌子书,然后是一本桌子书,记录了这本书的版本。
-----------------------------------------
| book_id | edition | edition_date |
| 5 | 1 | 2013-02-01 |
| 5 | 2 | 2014-01-25 |
-----------------------------------------
book_id是书表中的外键。 book_id和edition是book_edition表的复合主键。我想使用QueryDSL检索某本书的最新版本的编辑日期。这是一个子查询,它有助于更大的查询。它似乎应该是直截了当的,但到目前为止,我能想到的唯一方法是:
NumberExpression<Integer> maxEdition = new SQLSubQuery().from(SBookEdition.bookEdition)
.where(SBookEdition.bookEdition.bookId.eq(SBook.book.id))
.unique(SBookEdition.bookEdition.edition.max());
Expression<Date> bookDate = new SQLSubQuery().from(SBookEdition.bookEdition)
.where(SBookEdition.bookEdition.bookId.eq(SBook.book.id),SBookEdition.bookEdition.edition.eq(maxEdition))
.unique(SBookEdition.bookEdition.editionDate.max())
.as(new PathBuilder<>(Date.class, column.getAlias()));
似乎必须有一种更简单的方法,而且不需要要求&#34; max&#34;我所知道的独特之处,因为它是主键。