国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - JPA 中自定義對象和原生對象屬性名不一致怎么解決?

瀏覽:136日期:2023-12-19 13:38:49

問題描述

有如下段代碼 其中person是jpa的entity對象,personResult是自定義對象

@Query(select new com.xx.yy.PersonResult(p.id,p.name,p.age) from Person p) List<PersonResult> findPersonResult();

這樣執行是可以的,但是如果我其中的personResult對象中的id是叫personId,上面的代碼該如何改?

我用過

@Query(select new com.xx.yy.PersonResult(p.id as personId,p.name,p.age) from Person p) List<PersonResult> findPersonResult();

會報錯,是不是jpql new對象的時候不支持別名嗎?

問題解答

回答1:

你的代碼

@Query(select new com.xx.yy.PersonResult(p.id as personId,p.name,p.age) from Person p) List<PersonResult> findPersonResult();

你把as去掉就可以了,jpa是不支持這種語法的。

關于你的問題:Entity 和你自定義的類屬性名稱不一樣的問題,你大可不必擔心,使用select new xx.xx.PersonResult(p.id,p.name.p.age) 語法時,jpa不會關心真實的字段叫什么名字,只要字段類型一致就可以了,因為這里采用是Java的構造函數。調用構造函數時只需要關心需要傳入幾個參數以及參數的類型

看下我代碼,這樣會直觀一點

@Query('select new com.zfxiao.pojo.AnnotherPerson(p.id,p.name,p.age) from Person p ')List<AnnotherPerson> findAnnotherPerson()

AnnotherPerson的構造函數

public AnnotherPerson(Long personId, String name, Integer age) { this.personId = personId; this.name = name; this.age = age;}

標簽: java
相關文章:
主站蜘蛛池模板: 成人午夜大片 | 亚洲国产99在线精品一区二区 | 久久高清一级毛片 | 男人在线网址 | 欧美性性性性性色大片免费的 | 欧美日韩在线第一页 | 久久亚洲精品tv | 欧美成人精品手机在线观看 | 午夜男人女人爽爽爽视频 | 久久综合中文字幕一区二区 | 国产伦精品一区二区三区四区 | 国产一区免费在线观看 | 精产网红自拍在线 | 久久99国产精品久久 | 亚洲欧美网 | 免费高清特级毛片 | 日韩欧美一区二区三区在线 | 偷窥女厕国产在线视频 | 欧美一级毛片免费看视频 | 亚洲精品国产三级在线观看 | 九九九九热精品视频 | 台湾三级在线播放 | 免费看a毛片 | 欧美日韩免费一区二区三区 | 99视频精品全国免费 | 成人高清无遮挡免费视频软件 | 伊人狼人综合 | 暖暖免费高清日本一区二区三区 | 91在线一区二区三区 | 国产精品欧美视频另类专区 | 波多野结衣在线免费观看视频 | 久色网址 | 国产免费一级高清淫曰本片 | 亚洲成人高清在线 | 一极毛片 | 久青草网站 | 97视频在线免费播放 | 欧美一级免费 | 免费观看久久 | 日韩一区二区在线观看 | 日本韩国欧美在线 |