因此,我的目標是針對特定的書籍(使用給定的編號)來獲取每種語言的發佈版本。如果沒有發佈的版本,那麼我需要通過時間戳檢索最近的版本。在JPA Spring Repository之前編組之前的排序
我需要做一個查詢,從而在組之前執行順序。
我知道SQL你可以做(大約)
Select * From
(Select b from Book as b where b.author = ?1 ORDER BY (case when b.info.status=published then 1 else 2) asc, b.timestamp desc)
GroupBy book.language
但是我不知道該怎麼做了類似的加入thorugh使用Hibernate的JPA庫的查詢。 我知道這並不工作,因爲它經過中和,這意味着爲了檢查沒有保持順序由於輸給了「中」
Select a From book a where a.id in
(Select b from Book as b where b.author=?1 ORDER BY (case when b.info.status=published then 1 else 2) asc, b.timestamp desc)
GroupBy a.language
。無論如何在jpa倉庫中做這個查詢?
我不想要做一個「每個」,並獲得出版/最新的,因爲這會大大低效
這些書是設置爲
書|作者| info id
然後info id有:
infoid |語言|時間戳|狀態| .........
舉例目的是: Get j.k. rowlings發佈/最新的每種語言的書
例如設置將會是
book | author | info id
1 |Rowling |1
2 |Rowling |2
3 |Rowling |3
4 |Rowling |4
5 |Tolkein |5
信息:
id|lang|ts | status
1 |en |1 | published
2 |de |5 | unpublished
3 |de |3 | unpublished
4 |en |9 | unpublished
5 |en |4 | published
請求它woudl返回書 1(如出版,中英文),和2 (如de,de的最高時間戳)
GROUP BY(2個字)? – 2014-10-07 08:38:35
你是否認爲會有更多的書籍具有相同的信息編號?或者同一本書會有更多的信息ID?不同的書籍記錄可以有不同的作者,它會好嗎? – peterh 2014-10-07 09:23:38
嗨對不起,我不清楚 每本書都有它自己的信息ID。一位作者將有多本書。有多位作者,但是我會特別關注其中的一位。 因此,我們的目標是針對特定作者爲每本書的每種語言提取已發佈的,否則最新的。把書看作更多的修改。 – user1628284 2014-10-07 09:33:04