基于JPA查詢(xún)部分字段的相關(guān)事項(xiàng)
JPA查詢(xún)部分字段相關(guān)事項(xiàng)
JPA使用HQL查詢(xún)部分字段出錯(cuò)
org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped
解決
應(yīng)該@Entity指定name名,name值為對(duì)應(yīng)表名,同@Table的name值相同
使用HQL的注意
1.想要使用JPA查詢(xún)部分信息,需要使用HQL
2.select需跟實(shí)體,可以是map(必須是小寫(xiě),大寫(xiě)試了下報(bào)錯(cuò)),或者是將待查詢(xún)的字段單獨(dú)封裝成一個(gè)實(shí)體,new 實(shí)體
3.查詢(xún)的字段中需要指定as別名,否則得到的map結(jié)果集中,key值默認(rèn)是"0",“1”,“2”…數(shù)字
JPA中自定義查詢(xún)語(yǔ)句一定要注意這些
JPA的原生語(yǔ)句如何支持where a=X and b>x,未找到。
于是自定義,由于JPA底層是hibernate,所以需要HQL語(yǔ)句。
真尼瑪坑,sql語(yǔ)句為了所謂的面向?qū)ο?,整個(gè)HQL語(yǔ)句,簡(jiǎn)直就是典型的強(qiáng)行面向?qū)ο蟆?/p>
所以,你不得不如此:select u from Table u where u.x=x and u.y>y
每次寫(xiě)這個(gè)最常忘記的是第二個(gè)u,完全反人類(lèi)的語(yǔ)法。
而且JPA解析的時(shí)候,Table必須大寫(xiě)開(kāi)頭。
這個(gè)估計(jì)是先要JPA解析成HQL語(yǔ)句,再執(zhí)行。
至于為啥要大寫(xiě)開(kāi)頭,可能是由于JPA的規(guī)定吧。
JPA會(huì)把TableEnt對(duì)應(yīng)到table_ent這張表,為什么寫(xiě)成tableEnt就要報(bào)錯(cuò)。太不人性化。
補(bǔ)充
CTM,JPA查詢(xún)語(yǔ)句中把元素開(kāi)頭寫(xiě)成了小寫(xiě)。
findByStatusAndTimeMilliLessThan寫(xiě)成了findByStatusAnd**t**imeMilliLessThan
這還是看到之前寫(xiě)的附帶between的查詢(xún)才想起來(lái)
然between可以混著寫(xiě),那less和greater應(yīng)該也行
也是被JPA的語(yǔ)法坑過(guò)幾次,才會(huì)對(duì)JPA這么沒(méi)信心。
比如:findFirst必須寫(xiě)成findFirstBy
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 中的 BufferedWriter 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
BufferedWriter 是緩沖字符輸出流。它繼承于Writer。接下來(lái)通過(guò)本文給大家分享Java 中的 BufferedWriter知識(shí),需要的朋友參考下吧2017-05-05
SpringBoot整合Caffeine實(shí)現(xiàn)本地緩存的實(shí)踐分享
緩存是提升系統(tǒng)性能的一個(gè)不可或缺的工具,通過(guò)緩存可以避免大部分重復(fù)的請(qǐng)求到數(shù)據(jù)庫(kù)層,減少I(mǎi)O鏈接次數(shù),提升整體的響應(yīng)速率,本地緩存中比較常見(jiàn)的比如 Caffeine 緩存,這篇文章將結(jié)合具體的 Springboot 項(xiàng)目搭配 Caffeine 實(shí)現(xiàn)本地緩存的各種使用方式2024-07-07
WebSocket無(wú)法注入屬性的問(wèn)題及解決方案
這篇文章主要介紹了WebSocket無(wú)法注入屬性的問(wèn)題及解決方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Java如何利用return結(jié)束方法調(diào)用
這篇文章主要介紹了Java如何利用return結(jié)束方法調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Java使用JDBC連接Oracle_MSSQL實(shí)例代碼
這篇文章主要介紹了Java使用JDBC連接Oracle_MSSQL實(shí)例代碼,需要的朋友可以參考下2014-01-01
復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對(duì)象的實(shí)現(xiàn)
這篇文章主要介紹了復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對(duì)象的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Java下載Excel模板文件的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Java下載Excel模板文件的簡(jiǎn)單實(shí)現(xiàn)方法,日常工作中可能經(jīng)常會(huì)涉及到用java開(kāi)發(fā)報(bào)表,需求比較多的就是表格類(lèi)的報(bào)表導(dǎo)出,單元格合并,圖表的展現(xiàn),需要的朋友可以參考下2023-07-07

