亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:110日期: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();

這樣執(zhí)行是可以的,但是如果我其中的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是不支持這種語法的。

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

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

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

AnnotherPerson的構(gòu)造函數(shù)

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

標簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产黄片毛片 | 亚洲精品国产一区二区 | 天天干成人网 | 91精品婷婷国产综合久久8 | 国产色婷婷亚洲 | 国语自产拍天天在线 | 国产系列 视频二区 | 一级一片一a一片 | 一级免费毛片 | 日本特黄高清免费大片爽 | 3344成年站福利在线视频免费 | 黄网站色年片在线观看 | 伊人婷婷色香五月综合缴缴情 | 农村高清性色生活片 | 97久久精品午夜一区二区 | 亚洲成在人线免费视频 | 黄色影片一级 | 国产丝袜视频在线 | 西西午夜视频 | 黄在线观看在线播放720p | 欧美精品免费一区欧美久久优播 | 亚洲欧美一区二区三区在线播放 | 一级女性黄色生活片 | 午夜成a人片在线观看 | 久久国产精品99精品国产 | 99精品国内不卡在线观看 | 精品小视频在线观看 | 中文字幕无线码一区二区三区 | 欧美高清a| 国产萝控精品福利视频免费 | 欧美一级毛片免费网站 | 一级黄色录像毛片 | 国产啪精品视频网给免丝袜 | 国产美女亚洲精品久久久综合 | 日韩欧美精品中文字幕 | 国产的大片免费看 | 欧美一级毛片激情 | a毛片免费观看 | 亚洲国产精品久久久久秋霞小 | 激情在线观看视频免费的 | 一级级黄 |