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

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

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

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

會報(bào)錯(cuò),是不是jpql new對象的時(shí)候不支持別名嗎?

問題解答

回答1:

你的代碼

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

你把a(bǔ)s去掉就可以了,jpa是不支持這種語法的。

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

看下我代碼,這樣會直觀一點(diǎn)

@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;}

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产美女精品在线 | 涩涩网站在线看 | 欧美综合激情网 | 日韩字幕| 国产第一草草影院 | 草草草在线视频 | 看免费黄色一级视频 | 欧美日韩综合在线视频免费看 | maomiav在线| 青青青爽国产在线视频 | 免费观看成人碰视频公开 | 亚洲 成人 欧美 自拍 | 日韩一区二区三区视频在线观看 | 亚洲国产网 | 91madou麻豆 | 久草在线成人 | 欧美在线一区二区三区不卡 | 色成人在线 | 亚洲精品国产专区91在线 | 成人性色生活片免费网 | 久久免费视频1 | 欧美精品国产制服第一页 | 国产全黄a一级毛片视频 | 国产一区二区影院 | 国产精品国产三级在线专区 | 色男人的天堂久久综合 | 夜色www国产精品资源站 | 免费在线看黄视频 | 成人午夜做爰视频免费看 | 男女激情网 | 久久国产精品免费观看 | aaaa级毛片 | 国产亚洲一区在线 | 草逼大片 | 亚洲交配视频 | 日韩精品午夜视频一区二区三区 | 亚洲欧美日韩精品在线 | 一级女性黄色生活片 | 成人亚州 | 午夜色婷婷 | 亚洲欧美久久精品1区2区 |