SpringMVC JPA 關(guān)聯(lián)查詢問題-根據(jù)文章標簽查詢文章

在做協(xié)會網(wǎng)站時佩脊,有一個API症昏,是可以通過標簽查詢對應(yīng)的文章随闽。所以我在文章的 DAO , IArticleDAO 里有個函數(shù)

@Query("select a from ArticleTag a where a.tag in ?1 and a.article.status in ?2")
Page<Article> findArticleByTags(List<Tag> tags, String[] status, Pageable pageable);

但是到我上層 Services 查詢回來的結(jié)果返回給 Controller 之后,發(fā)現(xiàn)返回的 Page<Article> 里面居然裝的是 ArticleTag 對象肝谭。掘宪。。我懵了分苇。查了好久發(fā)現(xiàn)原來是查詢語句寫錯了添诉,應(yīng)該 select a.article 才對,于是改成

@Query("select a.article from ArticleTag a where a.tag in ?1 and a.article.status in ?2")

但是返回的還是 ArticleTag 医寿。栏赴。。

于是我又猜了一下靖秩,可能是不能這么查詢须眷?試了一下改成以 ArticleTag.article 為查詢對象

@Query("select a from ArticleTag.article a where ArticleTag.tag in ?1 and a.status in ?2")

于是出現(xiàn)了如下錯誤直接導致 Services 沒法加載

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: ArticleTag.article is not mapped [select a from ArticleTag.article a where ArticleTag.tag in ?1 and a.status in ?2]

好吧竖瘾。。花颗。捕传。上網(wǎng)再查一下 JPA 查詢的文章,我發(fā)現(xiàn)了這篇 JPA JPQL 查詢扩劝、排序.....(轉(zhuǎn))(那個“轉(zhuǎn)”字我看得很不順眼庸论。。)棒呛,里面的 關(guān)聯(lián)(join) 部分 提到

在默認的查詢中聂示, Entity 中的集合屬性默認不會被關(guān)聯(lián),集合屬性默認是延遲加載 ( lazy-load ) 簇秒。

然后重新寫了之后就變成現(xiàn)在這個了

@Query("select at.article from ArticleTag at join at.article where at.tag in ?1 and at.article.status in ?2 order by at.article.createDate")

繼續(xù)使用 PageRequest 來指定通過文章的某個字段排序也是可以的鱼喉。刪掉 order by ,改在 PageRequest 里使用 article.createDate 即可趋观。因為 JPA 查詢實際上會把 PageRequest 里的排序拼接在 JQL 語句里面扛禽。實際發(fā)出去的 JPA 是跟上面在 Query 注解里的查詢語句是一樣的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末皱坛,一起剝皮案震驚了整個濱河市编曼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌麸恍,老刑警劉巖灵巧,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抹沪,居然都是意外死亡刻肄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門融欧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敏弃,“玉大人,你說我怎么就攤上這事噪馏÷蟮剑” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵欠肾,是天一觀的道長瓶颠。 經(jīng)常有香客問我,道長刺桃,這世上最難降的妖魔是什么粹淋? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上桃移,老公的妹妹穿的比我還像新娘屋匕。我一直安慰自己,他們只是感情好借杰,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布过吻。 她就那樣靜靜地躺著,像睡著了一般蔗衡。 火紅的嫁衣襯著肌膚如雪纤虽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天绞惦,我揣著相機與錄音廓推,去河邊找鬼。 笑死翩隧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的呻纹。 我是一名探鬼主播堆生,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雷酪!你這毒婦竟也來了淑仆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤哥力,失蹤者是張志新(化名)和其女友劉穎蔗怠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吩跋,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡寞射,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锌钮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥温。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梁丘,靈堂內(nèi)的尸體忽然破棺而出侵浸,到底是詐尸還是另有隱情,我是刑警寧澤氛谜,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布掏觉,位于F島的核電站,受9級特大地震影響值漫,放射性物質(zhì)發(fā)生泄漏澳腹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遵湖。 院中可真熱鬧悔政,春花似錦、人聲如沸延旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迁沫。三九已至芦瘾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間集畅,已是汗流浹背近弟。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挺智,地道東北人祷愉。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像赦颇,于是被迫代替她去往敵國和親二鳄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,090評論 25 707
  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查詢集API 參...
    陽光小鎮(zhèn)少爺閱讀 3,823評論 0 8
  • 我們經(jīng)趁角樱看到很多侃侃而談的人订讼,教育起別人來,道理一套一套的扇苞,然而他自己的人生卻過得一團糟欺殿。想想我們成長過程中的父母...
    小賢哥2017閱讀 1,229評論 0 7
  • 征鴻近鄉(xiāng)日暮,看斜陽鋪水鳖敷。棹帆影脖苏、千里滄浪,碧落云帟霞袂定踱,入汀渚帆阳、長堤系纜,東城紫嶺遙相峙屋吨。望胡槐坡畔蜒谤,隨風蝶兒相...
    劉小地閱讀 508評論 25 68