色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:113日期: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
相關文章:
主站蜘蛛池模板: 亚洲国产欧美国产综合一区 | 免费一级成人毛片 | 亚洲天堂男人在线 | 国产区精品一区二区不卡中文 | 91成人在线播放 | 国产三级精品最新在线 | 欧美日韩ay在线观看 | 日韩成人午夜 | 草草在线影院 | 欧美精品久久久久久久久大尺度 | 日韩欧美精品综合一区二区三区 | 在线观看国产一区二区三区 | 朝鲜一级毛片 | 97在线免费视频观看 | 手机看片高清国产日韩片 | 91精品国产91久久久久久 | 99精品视频在线在线视频观看 | 国产va精品网站精品网站精品 | 欧美最爽乱淫视频播放黑人 | av国产精品 | 亚洲精品久久久久久久久久久网站 | 九九视频免费精品视频免费 | 日本天堂在线视频 | 99亚洲视频 | 日本一极毛片兔费看 | 欧美精品久久久久久久免费观看 | 中文字幕一区在线 | 国产精品二区高清在线 | 经典三级在线视频 | 欧美另类69xxxxx极品 | 日本一本色道 | 亚洲久久在线观看 | 免费视频久久 | 国产91久久精品一区二区 | 免费一级大毛片a一观看不卡 | 成人免费公开视频 | 亚洲男人天堂av | 高清波多野结衣一区二区三区 | 国产va免费精品高清在线观看 | 久9青青cao精品视频在线 | 伊人久久国产免费观看视频 |