您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何使用JPA查詢部分字段”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用JPA查詢部分字段”這篇文章吧。
org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped
應(yīng)該@Entity指定name名,name值為對(duì)應(yīng)表名,同@Table的name值相同
1.想要使用JPA查詢部分信息,需要使用HQL
2.select需跟實(shí)體,可以是map(必須是小寫,大寫試了下報(bào)錯(cuò)),或者是將待查詢的字段單獨(dú)封裝成一個(gè)實(shí)體,new 實(shí)體
3.查詢的字段中需要指定as別名,否則得到的map結(jié)果集中,key值默認(rèn)是"0",“1”,“2”…數(shù)字
JPA的原生語句如何支持where a=X and b>x,未找到。
于是自定義,由于JPA底層是hibernate,所以需要HQL語句。
真尼瑪坑,sql語句為了所謂的面向?qū)ο?,整個(gè)HQL語句,簡(jiǎn)直就是典型的強(qiáng)行面向?qū)ο蟆?/p>
所以,你不得不如此:select u from Table u where u.x=x and u.y>y
每次寫這個(gè)最常忘記的是第二個(gè)u,完全反人類的語法。
而且JPA解析的時(shí)候,Table必須大寫開頭。
這個(gè)估計(jì)是先要JPA解析成HQL語句,再執(zhí)行。
至于為啥要大寫開頭,可能是由于JPA的規(guī)定吧。
JPA會(huì)把TableEnt對(duì)應(yīng)到table_ent這張表,為什么寫成tableEnt就要報(bào)錯(cuò)。太不人性化。
CTM,JPA查詢語句中把元素開頭寫成了小寫。
findByStatusAndTimeMilliLessThan寫成了findByStatusAnd**t**imeMilliLessThan
這還是看到之前寫的附帶between的查詢才想起來
然between可以混著寫,那less和greater應(yīng)該也行
也是被JPA的語法坑過幾次,才會(huì)對(duì)JPA這么沒信心。
比如:findFirst必須寫成findFirstBy
以上是“如何使用JPA查詢部分字段”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。