基于JPA查詢部分字段的相關事項
JPA查詢部分字段相關事項
JPA使用HQL查詢部分字段出錯
org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped
解決
應該@Entity指定name名,name值為對應表名,同@Table的name值相同
使用HQL的注意
1.想要使用JPA查詢部分信息,需要使用HQL
2.select需跟實體,可以是map(必須是小寫,大寫試了下報錯),或者是將待查詢的字段單獨封裝成一個實體,new 實體
3.查詢的字段中需要指定as別名,否則得到的map結果集中,key值默認是"0",“1”,“2”…數(shù)字
JPA中自定義查詢語句一定要注意這些
JPA的原生語句如何支持where a=X and b>x,未找到。
于是自定義,由于JPA底層是hibernate,所以需要HQL語句。
真尼瑪坑,sql語句為了所謂的面向對象,整個HQL語句,簡直就是典型的強行面向對象。
所以,你不得不如此:select u from Table u where u.x=x and u.y>y
每次寫這個最常忘記的是第二個u,完全反人類的語法。
而且JPA解析的時候,Table必須大寫開頭。
這個估計是先要JPA解析成HQL語句,再執(zhí)行。
至于為啥要大寫開頭,可能是由于JPA的規(guī)定吧。
JPA會把TableEnt對應到table_ent這張表,為什么寫成tableEnt就要報錯。太不人性化。
補充
CTM,JPA查詢語句中把元素開頭寫成了小寫。
findByStatusAndTimeMilliLessThan寫成了findByStatusAnd**t**imeMilliLessThan
這還是看到之前寫的附帶between的查詢才想起來
然between可以混著寫,那less和greater應該也行
也是被JPA的語法坑過幾次,才會對JPA這么沒信心。
比如:findFirst必須寫成findFirstBy
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring Boot訪問靜態(tài)資源css/js,你真的懂了嗎
在搭建springboot時經常需要在html中訪問一些靜態(tài)資源,很多朋友不清楚如何在 Spring Boot中訪問靜態(tài)資源,本文給大家?guī)韮煞N解決方案,感興趣的朋友跟隨小編一起看看吧2021-05-05
Springboot集成RabbitMQ死信隊列的實現(xiàn)
在大多數(shù)的MQ中間件中,都有死信隊列的概念。本文主要介紹了Springboot集成RabbitMQ死信隊列的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
Springboot在有參構造方法類中使用@Value注解取值
這篇文章主要介紹了Springboot在有參構造方法類中使用@Value注解取值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06

